Я очень новичок, чтобы моргать (и паркет / хэдуп в этом отношении), поэтому я наверняка делаю что-то действительно глупое.Я пытаюсь создать приемник, который будет выгружать мой источник данных в файл паркета.
Мой код выглядит следующим образом:
val streamEnv = StreamExecutionEnvironment.getExecutionEnvironment
streamEnv.setParallelism(1);
streamEnv.enableCheckpointing(100, CheckpointingMode.EXACTLY_ONCE);
val sink = StreamingFileSink.forBulkFormat(outputPath, ParquetAvroWriters.forReflectRecord(classOf[MyClass])).build()
testSource.addSink(sink)
К сожалению, я не получаю исключение, которое я былранее, но это все еще не генерирует правильный вывод.В настоящее время я получаю один файл .part-xxx с 4B данных в нем.В этом потоке содержится около 20 000 записей, поэтому это кажется неправильным.
Прежде чем я начал писать этот вопрос, я получал исключение для метода not found из ParquetAvroWriters.java в строке 84. Этот код выглядит следующим образом:
return AvroParquetWriter.<T>builder(out)
.withSchema(schema)
.withDataModel(dataModel)
.build();
Сигнатура метода AvroParquetWriter:
public static <T> Builder<T> builder(Path file)
Но параметр во время вызова ParquetAvroWriters.java это StreamOutputFile, следовательно, нет ошибки метода.
IИспользую ссылку 1.6.1 и parquet-hadoop / parquet-avro 1.10.0.Как именно я должен настроить вещи, чтобы написать файл паркета?Это очень расстраивает - я даже не могу найти пример, который компилируется.Любая помощь будет принята с благодарностью!