hadoop怎么读取csv文件

avatar
作者
筋斗云
阅读量:2

Hadoop本身并不直接支持CSV文件的读取,但可以通过Hadoop的MapReduce框架或Hive等工具来读取CSV文件。

  1. 使用MapReduce框架读取CSV文件: 可以编写一个MapReduce程序来读取CSV文件。在Mapper阶段,将CSV文件中的每一行作为输入,并将其拆分为字段;在Reducer阶段,将处理过的数据写入HDFS或其他存储中。

  2. 使用Hive读取CSV文件: Hive是建立在Hadoop之上的数据仓库工具,可以通过Hive的SQL语言来查询和处理数据。可以创建一个外部表来读取CSV文件,并使用Hive的查询语句来操作这些数据。

示例代码:

使用MapReduce框架读取CSV文件的示例代码:

public class CSVReader {     public static class CSVMapper extends Mapper<LongWritable, Text, Text, Text> {         public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {             String line = value.toString();             String[] fields = line.split(",");             // 处理CSV文件中的每一行数据             context.write(new Text(fields[0]), new Text(fields[1]));         }     }      public static void main(String[] args) throws Exception {         Configuration conf = new Configuration();         Job job = Job.getInstance(conf, "CSVReader");         job.setJarByClass(CSVReader.class);         job.setMapperClass(CSVMapper.class);         job.setOutputKeyClass(Text.class);         job.setOutputValueClass(Text.class);         FileInputFormat.addInputPath(job, new Path("input.csv"));         FileOutputFormat.setOutputPath(job, new Path("output"));         System.exit(job.waitForCompletion(true) ? 0 : 1);     } } 

使用Hive读取CSV文件的示例代码:

CREATE EXTERNAL TABLE my_table (     col1 STRING,     col2 STRING,     col3 INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/path/to/csv/file';  SELECT * FROM my_table; 

通过以上两种方法,可以在Hadoop上读取CSV文件并进行相应的数据处理操作。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!