인프런 커뮤니티 질문&답변

lsb9938님의 프로필 이미지
lsb9938

작성한 질문수

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

Databricks Spark에서 XGBoost 학습 및 예측 실습 - 01

ModuleNotFoundError : No module named 'mmlspark' - 20230218

해결된 질문

작성

·

535

0

D95A1F11-5197-4726-916C-19D3D0B5CDCC.jpeg안녕하세요

spark 공부하면서 취준하고 있는 대학생입니다.

좋은 강의 제공해주셔서 감사합니다 :-)

다름이 아니라, 코드에 궁금한 점이 생겨서 문의 드립니다.

mmlspark lightgbm 설치 후에 아래에 있는 코드를 실행 해야 하나요?

Hyperlink로 접속을 해 봤는데 오류가 있는 거 같습니다.

스파크 프레임워크로 처음 공부를 해 봐서 제가 틀린 걸 수도 있습니다. 도움 부탁드립니다:-)

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

mmlspark lightgbm 을 설치해야 from mmlspark.lightgbm import LightGBMClassifier 을 수행할 수 있습니다. 강의의 설치 방법대로 설치했는데도 수행이 안되시는 건지요? 확인 부탁드립니다.

감사합니다.

 

lsb9938님의 프로필 이미지
lsb9938
질문자

설치하는 강의가 바로 아래에 있었군요

강의 순서가 뒤바껴 있어서 제가 설치 과정을 못 봤네요 확인했습니다

추가 질문)

image

영상에서 나온 것 처럼 libraries에 연결했지만 다음과 같이 오류가 생겼습니다..

현재 제가 쓰는 클러스터는 아래와 같습니다

image

권 철민님의 프로필 이미지
권 철민
지식공유자

음, 계속 테스트 해보고 있는데, 현재 databricks 클러스터 11.3 버전에서 뭔가 xgboost가 문제가 있는것 같습니다.

문서 상에는 클러스터 버전 12에서 sparkdl.xgboost 가 없어진다고 했고, 11.3에서는 여전히 유지 된다고 하는데, 지금 뭔가 문제가 있는 것 같습니다.

본 강의가 xgboost 실습 강의는 그렇게 많지는 않습니다. 일단 lightgbm 강의로 넘어가시지요. 제가 계속 테스트 후에 최종적으로 확인한 뒤 말씀 드리겠습니다.

좋은 정보 감사합니다.

lsb9938님의 프로필 이미지
lsb9938
질문자

확인 감사합니다

내용 업데이트 기다리겠습니다 :-)

권 철민님의 프로필 이미지
권 철민
지식공유자

확인해 보니 databricks가 모든 cluster에서 xgboost를 위한 sparkdl 모듈을 제거해 버린것 같습니다. 제가 9.x부터 12.x 버전까지 다 테스트 해본 결과 이제 xgboost를 이용하기 위해서 sparkdl을 사용하지는 못합니다.

이유는 XGBoost 그룹이 python 버전의 xgboost를 새롭게 버전을 출시하면서 spark에서도 수행될 수 있는 xgboost를 내놓았기 때문으로 추측됩니다.

과거에는 python 버전의 xgboost가 spark에서 기동되지 않아서 spark용 xgboost를 위해 databricks에서 sparkdl.xgboost를 내놓았는데, 이제는 python 버전의 xgboost가 spark를 지원하게 되면서 sparkdl.xgboost를 기본 지원되는 module에서 삭제해 버린것 같습니다.

위에 말씀드린 사항을 반영해서 이제 databricks에서 xgboost를 적용하려면 기존 실습 코드가 좀 많이 변경되어야 할 것 같습니다.

먼저 기존 실습 코드가

from sparkdl.xgboost import XgboostClassifier

xgb_classifier = XgboostClassifier(num_workers=1, featuresCol="features", labelCol="label", missing=0.0)

같다고 한다면 아래와 같이 변경되어야 합니다.

  1. python 버전의 xgboost를 databricks 커널에 설치해 줘야 합니다.

    먼저 아래와 같이 pip로 xgboost 신규 버전을 설치합니다.

    !pip install xgboost

  2. 설치를 하게 되면 xgboost 1.7.4 버전이 설치됩니다. xgboost 1.7 이상 부터 xgboost.spark으로 spark을 native python에서 지원합니다.

  3. 다음에 위 실습 코드가 아래와 같이 변경되어야 합니다.
    from sparkdl.xgboost import XgboostClassifier

    => from xgboost.spark import SparkXGBClassifier

     

    xgb_classifier = XgboostClassifier(num_workers=1, featuresCol="features", labelCol="label", missing=0.0);

    => xgb_classifier = SparkXGBClassifier(num_workers=1, features_col="features", label_col="label", missing=0.0)

주의해셔야 할 것은 featuresCol이 features_col로, labelCol이 label_col로 변경되었습니다.

위 변경사항을 감안해서 새롭게 강의를 만들어야 할 것 같습니다. 변경부분이 만만치 않아서 강의를 수정하는데 시간이 소모 될 것 같습니다.

감사합니다.

lsb9938님의 프로필 이미지
lsb9938
질문자

친절한 답변 감사드립니다

생각보다 일이 커지게 되었네요 알려주신 방법대로 spark Xgboost 실습 이어나가보겠습니다:-)

감사합니다.

lsb9938님의 프로필 이미지
lsb9938

작성한 질문수

질문하기