반응형
Spark dataframe(스파크 데이터프레임)으로 작업 중 dataframe의 null값을 특정값으로 바꾸고 싶은 경우가 있다.
이 때 주의해야할 점은 dataframe의 컬럼의 자료형 타입에 맞게끔 변환해줘야 정상적으로 replace된다.
다음과 같은 데이터프레임(dataframe)이 있을 때 "bid_i"의 값을 0으로 변경하려고 다음을 실행
val result_df_q_new = result_df_q.na.fill(0, Seq("bid_i"))
위와 같은 명령을 수행하고 확인을 해도 정상적으로 null값이 0으로 변경되지 않은 걸 확인할 수 있었다.
원인은 bid_i의 자료형 타입에 맞지않게 변경하려했기 때문이다.
위에서 보듯이 "bid_i"의 자료형 타입은 string인데 0으로 변경(na.fill메서드를 하려고 하니 정상적으로 변환되지 않았던 것이다.
(처리 도중 딱히 에러메세지가 없었다...)
val result_df_q_new = result_df_q.na.fill("0", Seq("bid_i"))
0을 string형(큰따옴표)를 씌워서 명령어를 주니 정상적으로 변경되는 것을 확인할 수 있었다.
데이터프레임(dataframe) 값을 na.fill을 통해 변경할 때는 자료형타입을 잘 확인하도록 하자!
반응형
'Bigdata > Spark' 카테고리의 다른 글
[ Spark ] 스파크 지연 평가와 장애 내구성 및 메모리 관리 (0) | 2018.11.20 |
---|---|
[ Spark ] 스파크 jdk버전 바꿔서 실행하기 (0) | 2018.10.18 |
[ Spark ] 스파크 Dataframe count중 scala.MatchError 발생 (0) | 2018.04.19 |
[ Spark ] 스파크 데이터프레임(Dataframe) partitionBy를 사용해 입맛에 맛게 저장하기 (0) | 2018.04.13 |
[ Spark ] JavaRDD로 saveAsTextFile했는데 데이터가 정상적으로 나오지 않는 경우 (0) | 2018.01.10 |