Ошибка чтения Spark Parquet: java.io.EOFException: достигнут конец потока с оставленными для чтения XXXXX байтами - PullRequest
1 голос
/ 30 октября 2019

При чтении файлов паркета в спарк, если вы столкнулись с проблемой ниже.


Приложение> Исключение в потоке "main" org.apache.spark.SparkException: Задание прервано из-за сбоя этапа: ЗадачаОшибка 0 на этапе 2.0 4 раза, последний сбой: потерянная задача 0.3 на этапе 2.0 (TID 44, 10.23.5.196, исполнитель 2): java.io.EOFException: достигнут конец потока с 193212 байтами, оставленными для чтения App> atorg.apache.parquet. DelegatingSeekableInputStream.readFully (DelegatingSeekableInputStream.java:91) приложение> в org.apache.parquet.hadoop.ParquetFileReader $ ConsecutiveChunkList.readAll (ParquetFileReader.java:1174) приложение> в org.apache.peowFile.ReaderFile.GameJava: 805) App> в org.apache.spark.sql.execution.datasources.parquet.VectorizedParquetRecordReader.checkEndOfRowGroup (VectorizedParquetRecordReader.java:301). исполнительный процессsql.execution.datasources.FileScanRDD $$ anon $ 1.hasNext (FileScanRDD.scala: 124) Приложение> в org.apache.spark.sql.execution.datasources.FileScanRDD $$ anon $ 1.nextIterator (FileScanRDD.scala):1004 *


Для следующих команд искры:

val df = spark.read.parquet("s3a://.../file.parquet")
df.show(5, false)

Чтобы исправить это - установка .config ("spark.sql.parquet.enableVectorizedReader", "false") решает проблему.

например

val spark = SparkSession
      .builder()
      .config("spark.sql.parquet.enableVectorizedReader", "false")
      .enableHiveSupport()
      .getOrCreate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...