public static class YourMapper extends
Mapper<LongWritable, Text, Your_Wish, Your_Wish> {
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
//Framework does the reading for you...
String line = value.toString(); //line contains one line of your csv file.
//do your processing here
....................
....................
context.write(Your_Wish, Your_Wish);
}
}
}
2条答案
按热度按时间kgqe7b3p1#
这需要的类是filesystem、fsdatainputstream和path。客户应该是这样的:
fsdatainputstream有几个
read
方法。选择一个适合你需要的。如果是mr,就更简单了:
8hhllhi22#
如果您想使用mapreduce,可以使用textinputformat逐行读取并解析mapper的map函数中的每一行。
另一种选择是开发(或找到已开发的)csv输入格式,用于从文件中读取数据。
这里有一个古老的教程http://hadoop.apache.org/docs/r0.18.3/mapred_tutorial.html 但新版本的逻辑是一样的
如果使用单个进程从文件中读取数据,则它与从任何其他文件系统中读取文件是相同的。这里有一个很好的例子https://sites.google.com/site/hadoopandhive/home/hadoop-how-to-read-a-file-from-hdfs
hth公司