Я пишу фрейм данных Spark в формате Avro в HDFS. И я хотел бы разбить большие файлы Avro, чтобы они вписывались в размер блока Hadoop и в то же время не были бы слишком маленькими. Есть ли для этого какие-либо параметры dataframe или Hadoop? Как я могу разделить файлы для записи на более мелкие?
Вот как я записываю данные в HDFS:
dataDF.write
.format("avro")
.option("avroSchema",parseAvroSchemaFromFile("/avro-data-schema.json"))
.toString)
.save(dataDir)
Я много исследовал и обнаружил, что невозможно установить ограничение на размер файла только по количеству записей Avro. Таким образом, единственным решением было бы создать приложение для сопоставления количества записей с размерами файлов.