Я использую API набора данных с Flink и пытаюсь разбить файлы паркета по ключу в моем POJO, например. Дата. Конечная цель - записать мои файлы, используя следующую файловую структуру.
/output/
20180901/
file.parquet
20180902/
file.parquet
Flink предоставляет удобный класс для переноса AvroParquetOutputFormat
, как показано ниже, но я не вижу возможности предоставить ключ разделения.
HadoopOutputFormat<Void, Pojo> outputFormat =
new HadoopOutputFormat(new AvroParquetOutputFormat(), Job.getInstance());
Я пытаюсь найти лучший способ продолжить. Нужно ли мне писать собственную версию AvroParquetOutputFormat
, которая расширяет тип hadoops MultipleOutputs
, или я могу использовать API-интерфейсы Flink, чтобы сделать это для меня.
Эквивалентом в Spark будет.
df.write.partitionBy('date').parquet('base path')