본문 바로가기
학습장/Data Engineering

sqoop export 시 org.apache.parquet.io.ParquetDecodingException

by daedoo_ 2021. 4. 2.

sqoop export 시 아래와 같은 에러 발생하는 경우.

Error: org.apache.parquet.io.ParquetDecodingException: Can not read value at 1 in block 0 in file hdfs://xxx

 

stdout에서는 위처럼 나오지 않고, yarn applicaiton 로그를 봐야 확인 됨.

 

소스파일은 parrquet 포맷.

소스파일의 일부 필드에 null 값이 있었음. (타겟테이블에서 해당 컬럼들은 timestamp, parquet에서는 unix timestamp 값으로 bigint)

 

아래 경우에는 정상수행

- pyspark으로 해당 필드 isNotNull() 으로 발라내서 별도 경로에 write한 후 해당 파일을 export 시에는 정상 수행

- 타겟 테이블에 문제 되는 컬럼 제외 하고 전체 export 시 정상 수행

 

위와 같은 경우 정상 수행 되어서 nulll 관련된 에러 인줄 알고,

 --input-null-non-string 파라미터값을 

\n

\\n

\\\\n

-1

갖가지 삽질해보았으나 같은 에러 발생

 

결국, 위 정상수행 되는 케이스 중 isNotNull() 아닌 전체를 새로 write한 후 export 하니 정상 적재됨......

--> 파일스키마 충돌 때문이라고 함.


그나마 유사한 케이스로 보임 ㅠ

 

 

Spark streaming - Caused by: org.apache.parquet.io.ParquetDecodingException: Can not read value at 1 in block 0 in file

Im using spark to write my json data to s3. However, I keep getting the below error. We are using apache hudi for updates. This only happens for some data, everything else works fine. Caused by: ...

stackoverflow.com

 

댓글