我正在尝试使用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")
答案 0 :(得分:0)
您可以使用repartition
和coalesce
控制spark中输出文件的数量。
在mapreduce中,您可以通过化简器的数量来控制输出文件,类似于在spark中,您可以指定分区和合并
dataRDD.repartition(2).saveAsTextFile("/user/cloudera/sqoop_import/orders_test")
如上面的命令所示,由于我们将分区规范指定为2,因此会将数据保存在两个文件中
您可以看看此answer,它将帮助您理解