inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스파크 머신러닝 완벽 가이드 - Part 1

Spark DataFrame에서 Null과 NaN 데이터 찾기

Spark에서 결측치가 있는 칼럼의 결측치 개수 셀 때 질문입니다!

619

밑바닥개발자

작성한 질문수 77

0

안녕하세요! 먼저 설 명절 복 많이 받으시길 바랍니다 ㅎㅎ

 

해당 강의에서 Spark 데이터프레임에서 결측치가 있는 칼럼의 결측치 개수를 카운트할 때 pyspark.sql.functions 모듈에 있는 count, when 메소드를 활용하잖아요!?

예를 들어, 아래와 같은 코드가 있다고 할 때,

titanic_sdf.select( [ count( when( col(c).isNull(), c ) ) for c in titanic_sdf.columns ] ) 

강의에서 설명해주실 때, count 메소드는 특정 칼럼의 값이 Null이면 그 Row를 카운트하지 않는다고 하셨는데요! 

그러면 위와 같이 when( col(c).isNull(), c ) 라는 문법은 col(c) 라는 칼럼의 값이 Null일 경우, c 값 즉, Null인 값으로 하라는 의미이잖아요? SQL로 바꾸자면,...

CASE WHEN c IS NULL 

            THEN c              // 어차피 c 가 Null 값

             ELSE END

이잖아요!?  그러면 여기서 c 라는 값 자체가 어차피 Null 인데, count 메소드는 어떻게 Null인 Row 개수를 셀수 있는 건가요? count 메소드는 Null 값인 Row를 세지 않는다고 했는데...

 

혹시 질문 내용이 이해가 안가신다면 답글 달아주세요...!

apache-spark 데이터 엔지니어링 머신러닝 배워볼래요? bigdata

답변 1

1

권 철민

안녕하십니까,

음, 이건 제가 강의에서 설명을 잘못드렸습니다.   말씀하신대로 count는 null을 포함하기 때문에 그런 식으로 이해가 되게 설명드리면 안되는 부분이었습니다. 

when( col(c).isNull(), c )에서 c는 컬럼 c 값이 아니라 문자열 c입니다. 그러니까 컬럼명칭 문자열 입니다. 가령 Age 컬럼의 null  값을 추출하는 것이라면 

count(case when Age is null then 'Age' else Null end) 입니다. 그래서 null값을 count할 수 있습니다. 

좋은 지적 감사합니다. 조만간 시간 봐서 해당 내용을 수정하도록 하겠습니다. 

0

밑바닥개발자

연휴임에도 빠른 자세한 답변 감사합니다! 설명해주신 부분에 대해 명확히 이해했습니다!

이번 질문으로 또 새로운 지식을 배워갑니다 감사합니다! :)

강사님 안녕하세요 ㅎdatabricks환경에 대한 설

0

58

3

데이터 브릭스 이슈

0

110

2

데이터 브릭스 가입

0

98

2

pyspark local 설치

0

99

2

community edition 가입 문의

0

110

2

데이터 로드 및 로딩 된 파일 데이터 목록 조회 방

0

168

2

클러스터 버전 설정

0

134

3

instacart market basket analysis

0

186

3

spark 추가 학습 관련 질문

0

233

2

MLOps 관련 MLFLow 및 Databricks 모델 서빙

0

398

1

train파일 업로드 중에 해당 경로가 없다고 뜹니다

0

374

2

강의가 재생되지 않음

0

265

2

후속 강의 계획 질문드립니다.

0

372

1

spark_xgboost_lightgbm 강의부분 관련

0

474

1

spark환경에서 데이터 수정에 관하여 질문이 있습니다.

1

322

1

Spark를 이용하여 binary file -> parquet, csv 변환 가능여부

0

571

1

SPARK 2 강의 오픈

0

498

1

Spark ML 모델 서빙

0

570

1

mac os ) zip 파일 dataframe 오류

0

672

1

ModuleNotFoundError : No module named 'mmlspark' - 20230218

0

630

1

TrainValidationSplit과 randomSplit 사용 질문

0

401

1

현업에서는 scala-spark를 사용하나요? py-spark를 사용하나요?

0

515

1

cluster 생성 Database runtime version 질문

0

275

1

Pandas vs Spark: 비용, 처리시간 비교

0

1237

1