Запись паркетных данных может быть выполнена следующим образом. Но если я пытаюсь написать не только один файл и, более того, хочу вывести на несколько файлов s3, чтобы чтение одного столбца не считывало все данные s3, как это можно сделать?
AvroParquetWriter<GenericRecord> writer =
new AvroParquetWriter<GenericRecord>(file, schema);
GenericData.Record record = new GenericRecordBuilder(schema)
.set("name", "myname")
.set("favorite_number", i)
.set("favorite_color", "mystring").build();
writer.write(record);
Например, что, если я хочу разбить на значение столбца, чтобы все данные с красным символом favorite_color попадали в один файл и те, у которых синие в другом файле, чтобы минимизировать стоимость определенных запросов. В контексте Hadoop должно быть что-то подобное. Все, что я могу найти, это вещи, которые упоминают Spark, используя что-то вроде
df.write.parquet("hdfs:///my_file", partitionBy=["created_year", "created_month"])
Но я не могу найти эквивалент partitionBy в простой Java с Hadoop.