Apache Flink 输出到每个 GroupedDataSet 的 csv 文件 [英] Apache Flink output to csv file for each GroupedDataSet
问题描述
我想将每个 groupedDataSet 输出到 csv.
I want to output to csv every groupedDataSet.
数据示例:
A,123
B,200
A,400
B,400
所以我想要的输出是:
文件 1:
A,123
A,400
文件 2:
B,200
B,400
所以基本上是 exampleData
的简单代码:
So basically a simple code for exampleData
:
exampleData.groupBy(0).sortGroup(1, Order.ASCENDING)
现在我想将每个 groupedDataSet 输出到不同的 CSV.实现这一目标的最佳做法是什么?
Now I want to output each groupedDataSet to a different CSV. What is the best practice to achieve this?
我使用的是 Scala 版本 2.11.12 和 Flink 版本 1.11.0
I'm using Scala version 2.11.12, and Flink version 1.11.0
推荐答案
您需要的是分桶接收器,但目前仅支持流式作业,不支持批处理.Flink 1.12 统一了batch &流媒体,所以理论上这可能对你有用.我为批处理作业实现了自己的分桶接收器,但最近版本的 Hadoop 似乎存在一些问题,我需要对其进行调试.
What you need is a bucketing sink, but that's currently only supported for streaming jobs, not batch. Flink 1.12 has unified batch & streaming, so in theory that might work for you. I implemented my own bucketing sink for batch jobs, but it seems to have some issues with recent versions of Hadoop, which I need to debug.
这篇关于Apache Flink 输出到每个 GroupedDataSet 的 csv 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!