gpt4 book ai didi

apache-spark - 如何定义 spark 结构化流文件接收器文件路径或文件名?

转载 作者:行者123 更新时间:2023-12-04 05:30:09 28 4
gpt4 key购买 nike

我正在使用 Spark 结构化流式处理来处理来自流式数据源的数据,并且我正在使用文件接收器。数据处理后放入hdfs。

我遇到了一个问题,输出文件类似于 part-00012-8d701427-8289-41d7-9b4d-04c5d882664d-c000.txt。这使我无法在最后一小时内获得文件输出。

是否可以将输出文件自定义为 timestamp_xxx 或类似的东西?或者,我可以每批输出到不同的路径吗?

最佳答案

您不能更改已保存文件的名称。但是,您可以更改保存位置的文件夹结构。使用 partitionBy() 在数据集中的指定列之后对数据进行分区,在这种情况下可能需要年、月、日和小时:

df.writeStream 
.format("parquet") // can be "orc", "json", "csv", etc.
.option("path", "/path/to/save/")
.partitionBy("year", "month", "day", "hour")
.start()

这将创建一个从 path 开始的文件夹结构,如下所示:

year=2018
|
|--> month=06
| |
| |--> day=26
| | |
| | |--> hour=10
| | |--> hour=11
| | |--> ...
| |
| |--> day=27
| | |
| | |--> ...

当然,根据可用的内容,可以使用其他列对文件进行分区。

关于apache-spark - 如何定义 spark 结构化流文件接收器文件路径或文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51056764/

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