Spark流-由以下原因引起:org.apache.parquet.io.ParquetDecodingException:无法读取文件中块0中的1值

时间:2019-12-26 19:55:53

标签: apache-spark spark-streaming parquet hoodie

我正在使用spark将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

我听不懂。我遵循了几个线程,并在我的spark conf中设置了--conf“ spark.sql.parquet.writeLegacyFormat = true”。但这甚至没有帮助。

1 个答案:

答案 0 :(得分:0)

找出问题所在。问题在于现有镶木地板文件和传入数据中的架构不匹配。 其中一个字段是现有镶木地板架构中的字符串,并且在更新的数据块中一直被发送。