gpt4 book ai didi

java - 多个文件作为 Hadoop Dfs 和 mapreduce 的输入

转载 作者:可可西里 更新时间:2023-11-01 16:28:45 26 4
gpt4 key购买 nike

通常我们将一个文本文件作为 java 文件的输入(比如在简单的字数统计问题的情况下)。相反,现在我有 100 个 csv 文件,我想将其作为我的 java 代码的输入。(所有文件不能简单地合并为 1 个文件)。试图预测给定 100 只股票的最大/最小股票波动率,因此每个 csv 文件都是唯一的。那么,如何将csv文件的整个文件夹作为输入流提供给java程序。

最佳答案

解决方案 1:为了解决这个问题,我们可以使用 FileInputFormat.addInputPaths() 方法,它可以采用逗号分隔的多个输入列表,我们可以将其写为

FileInputFormat.addInputPaths(“file0,file1,....”)

假设需要分析 2 个文件以及使用 Facebook 和 youtube 服务的人员列表(需要其中的一个输出文件)

我们有两个文件 facebook.txt 和 youtube.txt

Path YoutubePath = new Path(args[0]);
Path FacebookPath = new Path(args[1]);
Path outputPath = new Path(args[2]);
MultipleInputs.addInputPath(job, FacebookPath, TextInputFormat.class, JoinFacebookMapper.class);
MultipleInputs.addInputPath(job, YoutubePath, TextInputFormat.class, YoutubeMapper.class);
FileOutputFormat.setOutputPath(job, outputPath);

在代码中添加以下行将产生多个文件,以便在单个 map reduce 作业中传递。

您可以将整个文件夹作为参数传递

关于java - 多个文件作为 Hadoop Dfs 和 mapreduce 的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46997404/

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