빅데이터/Spark

[Spark] Pyspark NoneType, null, blank, empty string 필터링 하는 방법

쌍쌍바나나 2019. 3. 24. 20:37
반응형

Pyspark NoneType, Null, Blank, Empty String 필터링 하는 방법

pyspark에서 NoneType, NULL, Blank, Empty String 등 사용지 않는 값을 필털이 하는 방법에 대해서 설명을 한다.

  • SQL로 진행하면 컬럼 하나 하나에 대해서 WHERE 절을 이용해서 필터링을 해야한다.
  • 하지만 spark에서 Condition을 생성하고, 해당 Condition을 filter() 함수의 인자로 넘겨주면, 동일한 조건으로 모든 컬럼에 적용이 가능하다.
  • 코드에서 살펴볼 내용
    • None, Null Empty String이 포함된 Row만 추출이 가능
    • None, Null, Empty String을 제외한 모든 Row만 추출도 가능
  • 코드 설명
    • 간단하게 각각 컬럼에 공통적으로 적용할 condition을 입력을 하고, map함수를 이용해 모든 컬럼에 적용을 한다.
    • 마지막에는 reduce함수를 이용해 condition을 모두 "&"(and) 또는 "|"(or) 로 연결하면 condition은 정의 완성
    • 정의된 condition을 filter함수에 넘기면 내가 원하는 Row만 추출이 가능하다.
    • Condition 예)Column<(((CODE IS NOT NULL) AND (NOT (CODE = ))) AND ((TYPE IS NOT NULL) AND (NOT (TYPE = ))))>

소스코드

반응형