Spark - 如何将每n行写入不同的输出文件?

时间:2017-03-02 05:09:23

标签: java scala hadoop apache-spark spark-streaming

我是Spark的新手(虽然我有Hadoop和MapReduce经验)并且我正在尝试处理每行有JSON记录的巨型文件。我想在每一行上进行一些转换,并且每n条记录(比如100万条)写一个输出文件。因此,如果输入文件中有750万条记录,则应生成8个输出文件。 我怎样才能做到这一点?您可以使用Java或Scala提供答案。

使用Spark v2.1.0。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

1231454488, 5448545845, 4564456452

我现在在我的Windows游戏电脑上。因此,此代码未经测试,可能包含轻微错误。但总的来说应该有用。

参考:Spark: Cut down no. of output files

作为旁注,虽然控制分区大小并不是一个坏主意,但是任意决定你想要一个分区中的100万条记录可能不是可行的方法。通常,您可以使用分区大小来优化群集利用率。

编辑:我应该注意,这并不能保证每个分区有100万条记录,只是你应该在那个球场内有东西。