gpt4 book ai didi

hadoop - 在 Spark Streaming 中更改输出文件名

转载 作者:可可西里 更新时间:2023-11-01 14:21:59 25 4
gpt4 key购买 nike

我正在运行一个 Spark 作业,它在逻辑上表现得非常好。但是,当我使用 saveAsTextFile 将文件保存在 s3 存储桶中时,我的输出文件的名称格式为 part-00000、part-00001 等。有没有办法更改输出文件名?

谢谢。

最佳答案

在 Spark 中,您可以使用 saveAsNewAPIHadoopFile 并在 hadoop 配置中设置 ma​​preduce.output.basename 参数来更改前缀(只是“部分”前缀)

val hadoopConf = new Configuration()
hadoopConf.set("mapreduce.output.basename", "yourPrefix")

yourRDD.map(str => (null, str))
.saveAsNewAPIHadoopFile(s"$outputPath/$dirName", classOf[NullWritable], classOf[String],
classOf[TextOutputFormat[NullWritable, String]], hadoopConf)

您的文件将被命名为:yourPrefix-r-00001

在 hadoop 和 Spark 中,输出中可以有多个文件,因为可以有多个 reducer (hadoop) 或多个分区 (spark)。然后您需要保证每个文件的名称都是唯一的,这就是为什么无法覆盖文件名最后部分的序列号的原因。

但如果您想更好地控制文件名,您可以扩展 TextOutputFormatFileOutputFormat 并覆盖 getUniqueFile 方法。 p>

关于hadoop - 在 Spark Streaming 中更改输出文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972381/

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