При чтении файлов паркета в спарк, если вы столкнулись с проблемой ниже.
Приложение> Исключение в потоке "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()