[이미지를 다 날려버렸다...]
java 8 버전에
spark-api 를 이용해서
spark-sql 으로 데이터 처리를 하려고 하는 중에 SparkSession 이 json 파일을 불러와서
Dataset 으로 넣어주고, 그 데이터를 show 하는 과정에서
에러가 발생했다.
NoSuchFieldException 이 발생했는데 ,
도무지 구글링을 해도 원인을 찾을 수가 없었다.
공홈에서도 관련 자료가 없어서 한참을 삽질 하던중에
디펜던시 문제가 아닐까 의심이 들었다.
의심이 들었던 이유는 자바 8에서는
spark-sql_2.11 에 2.1.0 버전에서 호환이 되었는데
그 이상 버전에서는 동작이 정상적으로 안되서 의심이 됐었다
이렇게 spark-sql 에는 commons-compiler 의 의존성을 가지고 있는데 버전이 3.1.2 버전이었다.
근데 자바 8에서는 컴파일러 버전이 3.0.8과 호환이 된다는 말을 들었다.
exclusion 을 써서 제외시키고 3.0.8로 변경 해보니 ,
Dataset 까지는 정상적으로 생성되는데 , show 를 부르는 순간 위와 같은 에러가 발생했다.
엄청난 삽질을 했는데도 원하는 정보를 찾을 수가 없었다.
모두들 정상적으로 show() 가 불려지는데 나만 안된다 ;;
그러다 자바 11과 스파크가 호환이 잘된다는 걸 보고
혹시나 하는 마음으로 자바 11로 올리고 ,
spark-sql을 scala12 버전에 버전을 2.4.3 으로 올린 후에
spark-sql 이 가지고 있는 common-compiler 의 버전을 exclusion 시켜 주고
내가 원하는 버전의 common-compiler 버전을 넣어주니
정상 동작 했다...
짜증나는 버전 문제였어서 기록해둠
'데이터처리 > spark' 카테고리의 다른 글
[Spark definitive guide] - 아파치 스파크란 (0) | 2021.02.02 |
---|---|
Spark - RDD 생성 방법과 동작 과정 (0) | 2020.06.04 |
[reference] spark - RDD programming (0) | 2020.05.11 |
[reference] spark - programming quick start (0) | 2020.05.08 |
[reference] Spark - 개념 클러스터 모드 (0) | 2020.05.08 |