溫馨提示×

hadoop怎么讀取csv文件

小億
226
2024-03-02 10:43:18
欄目: 編程語言

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文件并進行相應的數據處理操作。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女