gpt4 book ai didi

csv - hadoop如何读取输入文件?

转载 作者:可可西里 更新时间:2023-11-01 14:18:58 25 4
gpt4 key购买 nike

我有一个要使用 hadoop mapreduce 分析的 csv 文件。我想知道hadoop是否会逐行解析它?如果是,我想使用逗号分隔的字符串来获取要分析的字段。还是有其他更好的方法来解析 csv 并将其输入 hadoop?该文件为 10 GB,以逗号分隔。我想将 java 与 hadoop 一起使用。下面map()方法中Tex类型的参数“value”包含了Map/Reduce解析的每一行? - 这是我最困惑的地方。

这是我的代码:

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
try {
String[] tokens = value.toString().split(",");

String crimeType = tokens[5].trim();
int year = Integer.parseInt(tokens[17].trim());

context.write(crimeType, year);

} catch (Exception e) {...}
}

最佳答案

是的,默认情况下,Hadoop 使用文本输入阅读器从输入文件中逐行输入映射器。映射器中的键是读取的行的偏移​​量。但是请注意 CSV 文件,因为单个列/字段可以包含换行符。您可能想要寻找像这样的 CSV 输入阅读器:https://github.com/mvallebr/CSVInputFormat/blob/master/src/main/java/org/apache/hadoop/mapreduce/lib/input/CSVNLineInputFormat.java

关于csv - hadoop如何读取输入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com