inflearn logo
강의

Course

Instructor

Spark Machine Learning Complete Guide - Part 1

Distinguishing between None, Null, and NaN in Pandas and Spark DataFrames

Spark 3.5에서 pandas의 NaN이 NULL로 바뀌지 않을 때

66

fkid009

21 asked

0

로컬에서 Docker 이미지(mcr.microsoft.com/mmlspark/release:latest)로 PySpark 환경을 구성해 강의를 듣고 있습니다.


강의에서는 Spark가 업데이트되면서 pandas DataFrame의 np.nan이 Spark DataFrame으로 변환될 때 null로 바뀐다고 설명되어 있었습니다. 그런데 제 환경에서는 여전히 NaN으로 남아 있었습니다.


확인해보니 이 이미지의 latest 태그는 Spark 최신 버전이 아니라 SynapseML 최신 버전 기준이었고, 실제 설치된 버전은 Spark 3.5.4였습니다. 이 버전에서는 Arrow 최적화가 기본적으로 꺼져 있어서 NaN이 그대로 유지되는 것으로 보입니다.


아래처럼 Spark 세션을 만들 때 Arrow 옵션을 켜 주니 NaN이 null로 변환되는 것을 확인했습니다.

spark = (
    SparkSession.builder
        .config("spark.sql.execution.arrow.pyspark.enabled", "true")
        .appName("SparkML")
        .enableHiveSupport()
        .getOrCreate()
)


Spark를 잘 아는 편이 아니라서 이 방법이 근본적인 해결책인지는 확실하지 않습니다. 더 좋은 방법을 알고 계신다면 공유해 주시면 감사드리겠습니다.

머신러닝 빅데이터 apache-spark 데이터-엔지니어링

Answer 1

0

dooleyz3525

안녕하십니까,

음, Spark 3.5에서는 다시 NaN으로 변경이 되나 보군요. 말씀하신대로 Arrow 옵션을 켜주고 Spark Session을 구성해주면 될것 같습니다.

좋은 정보 올려 주셔서 감사합니다.

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

0

136

3

데이터 브릭스 이슈

0

171

2

데이터 브릭스 가입

0

146

2

pyspark local 설치

0

167

2

community edition 가입 문의

0

174

2

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

0

228

2

클러스터 버전 설정

0

190

3

instacart market basket analysis

0

252

3

spark 추가 학습 관련 질문

0

290

2

MLOps 관련 MLFLow 및 Databricks 모델 서빙

0

455

1

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

0

413

2

강의가 재생되지 않음

0

311

2

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

0

407

1

spark_xgboost_lightgbm 강의부분 관련

0

506

1

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

1

381

1

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

0

622

1

SPARK 2 강의 오픈

0

535

1

Spark ML 모델 서빙

0

620

1

mac os ) zip 파일 dataframe 오류

0

720

1

ModuleNotFoundError : No module named 'mmlspark' - 20230218

0

668

1

TrainValidationSplit과 randomSplit 사용 질문

0

448

1

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

0

567

1

cluster 생성 Database runtime version 질문

0

309

1

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

0

1289

1