-
[spark] FIXED_LEN_BYTE_ARRAY 오류Study/spark 2024. 10. 16. 10:19
parquet 파일을 read 하다 보면 아래와 같은 오류가 발생할 수 있다.
발생원인으로는 parquet 파일 내 decimal type의 컬럼이 존재할 경우 간혹 발생할 수 있다.
parquet 파일 read 시 vector parquet reader가 활성화 되면서 binary type으로 decording 하는데
이때, decimal type이 존재하면 오류가 발생하는 것이다.
error message
org.apache.spark.SparkException: Task failed while writing rows. Caused by: com.databricks.sql.io.FileReadException: Error while reading file s3://bucket-name/landing/edw/xxx/part-xxxx-tid-c00.snappy.parquet. Parquet column cannot be converted. Column: [Col1], Expected: DecimalType(10,0), Found: FIXED_LEN_BYTE_ARRAY Caused by: org.apache.spark.sql.execution.datasources.SchemaColumnConvertNotSupportedException.
solution
vector parquet reader 옵션을 비활성화 하면 된다.
spark.conf.set("spark.sql.parquet.enableVectorizedReader","false")
출처
https://kb.databricks.com/scala/spark-job-fail-parquet-column-convert
https://dataninjago.com/2021/12/12/databricks-deep-dive-4-vectorised-parquet-reading/
'Study > spark' 카테고리의 다른 글
[pyspark] RollUp 사용하기 (0) 2024.02.26