Потоковая передача Spark - вызвано: org.apache.parquet.io.ParquetDecodingException: не удается прочитать значение 1 в блоке 0 в файле

Я использую искру для записи моих данных json в s3. Однако я продолжаю получать ошибку ниже. Для обновлений мы используем apache hudi. Это происходит только с некоторыми данными, все остальное работает нормально.

Caused by: org.apache.parquet.io.ParquetDecodingException: Can not read value at 1 in block 0 
 in file s3a://<path to parquet file>
at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.ja va:251)

App > at org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:132)

App > at org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:136)

 App > at com.uber.hoodie.func.ParquetReaderIterator.hasNext(ParquetReaderIterator.java:45)

App > at com.uber.hoodie.common.util.queue.IteratorBasedQueueProducer.produce(IteratorBasedQueueProducer.java:44)

App > at com.uber.hoodie.common.util.queue.BoundedInMemoryExecutor.lambda$null$0(BoundedInMemoryExecutor.java:94)

App > at java.util.concurrent.FutureTask.run(FutureTask.java:266)

 App > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

App > ... 4 more

App > Caused by: java.lang.UnsupportedOperationException:org.apache.parquet.avro.AvroConverters$FieldLongConverter

Я не могу понять. Я следил за несколькими потоками и установил --conf "spark.sql.parquet.writeLegacyFormat=true" в своих конфетах Spark. но даже это не помогло.

1 ответ

Решение

Обнаружил проблему. Проблема заключалась в несоответствии схемы в существующих файлах паркета и входящих данных. Одно из полей было строкой в ​​существующей схеме паркета, и оно отправлялось так же долго в новом фрагменте данных.

Другие вопросы по тегам