gpt4 book ai didi

apache-flink - Apache Flink - DataSet API 是否支持将输出写入单个文件分区

转载 作者:行者123 更新时间:2023-12-02 04:27:52 25 4
gpt4 key购买 nike

我在 Flink 中使用数据集 API,我试图通过我的 POJO 中的键对 parquet 文件进行分区,例如日期。最终目标是使用以下文件结构写下我的文件。

/output/
20180901/
file.parquet
20180902/
file.parquet

Flink 提供了一个方便的类来包装 AvroParquetOutputFormat 如下所示,但我无论如何看不到提供分区键。

HadoopOutputFormat<Void, Pojo> outputFormat = 
new HadoopOutputFormat(new AvroParquetOutputFormat(), Job.getInstance());

我正在尝试找出继续进行的最佳方式。我是否需要编写自己的 AvroParquetOutputFormat 版本来扩展 hadoops MultipleOutputs 类型,或者我是否可以利用 Flink API 为我执行此操作。

Spark 中的等价物是。

df.write.partitionBy('date').parquet('base path')

最佳答案

您可以使用 BucketingSink<T> sink 通过提供 Bucketer 的实例在您定义的分区中写入数据界面。有关示例,请参见 DateTimeBucketer。 https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-filesystem/src/main/java/org/apache/flink/streaming/connectors/fs/DateTimeBucketer.java

关于apache-flink - Apache Flink - DataSet API 是否支持将输出写入单个文件分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52204034/

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