Попытка прочитать простой файл Parquet в моем конвейере Google DataFlow
используя следующий код
Read.Bounded<KV<Void, GenericData>> results = HadoopFileSource.readFrom("/home/avi/tmp/db_demo/simple.parquet", AvroParquetInputFormat.class, Void.class, GenericData.class);
всегда запускать следующее исключение при запуске конвейера
IllegalStateException: не удается найти кодировщик для класса org.apache.avro.generic.GenericData
похоже, что этот метод внутри HadoopFileSource не может обрабатывать этот тип класса, как для кодера
private <T> Coder<T> getDefaultCoder(Class<T> c) {
if (Writable.class.isAssignableFrom(c)) {
Class<? extends Writable> writableClass = (Class<? extends Writable>) c;
return (Coder<T>) WritableCoder.of(writableClass);
} else if (Void.class.equals(c)) {
return (Coder<T>) VoidCoder.of();
}
// TODO: how to use registered coders here?
throw new IllegalStateException("Cannot find coder for " + c);
}
любая помощь будет оценена
Ави