我想在HDFS中将一个文件分成几个文件

问题描述 投票:0回答:1

我正在尝试使用spark-submit将文件写入hdfs。写入文件时,我想将一个文件分成多个文件,例如mapreduce的结果而不是一个文件。(例如part-0000,park-0001)

这里是示例代码我应该设置哪些选项

val conf = new Configuration()
val fs= FileSystem.get(conf)
val output = fs.create(new Path("/user/foo/test.txt"))
val writer = new PrintWriter(output)
writer.write("Hellow World1\n")
writer.write("Hellow World2\n")
...
writer.write("Hellow World3\n")
scala hdfs spark-submit
1个回答
0
投票

您可以使用repartitioncoalesce控制spark中输出文件的数量。在mapreduce中,您可以通过化简器的数量来控制输出文件,类似于在spark中,您可以指定分区和合并。

dataRDD.repartition(2).saveAsTextFile("/user/cloudera/sqoop_import/orders_test")

如上面的命令所示,由于我们将分区规范指定为2,因此将数据保存在两个文件中

您可以查看此answer,它将帮助您理解

© www.soinside.com 2019 - 2024. All rights reserved.