gpt4 book ai didi

java - Hadoop Map任务:读取指定输入文件的内容

转载 作者:行者123 更新时间:2023-12-02 22:05:36 24 4
gpt4 key购买 nike

我对Hadoop环境非常陌生。最近,我运行了一个基本的mapreduce程序。它很容易运行。

现在,我在输入路径目录中有一个包含以下内容的输入文件

fileName1
fileName2
fileName3
...

我需要逐一读取此文件的各行,并在指定的输出目录中创建一个具有这些名称(即fileName1,fileName2等)的新文件。

我写了下面的 map 实现,但没有成功
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter)
throws IOException {

String fileName = value.toString();
String path = outputFilePath + File.separator + fileName;
File newFile = new File(path);

newFile.mkdirs();
newFile.createNewFile();
}

有人可以向我解释我错过了什么吗?

谢谢

最佳答案

我认为您应该开始研究 FileSystem的类,我认为您只能在分布式文件系统中创建文件。这是一个我打开文件进行读取的代码示例,您可能只需要一个FSDataOutputStream。在您的映射器中,您可以从Context类中获取配置。

    Configuration conf = job.getConfiguration();
Path inFile = new Path(file);
try {
FileSystem fs;
fs = FileSystem.get(conf);

if (!fs.exists(inFile))
System.out.println("Unable to open settings file: "+file);

FSDataInputStream in = fs.open(inFile);
...
}

关于java - Hadoop Map任务:读取指定输入文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19379083/

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