我在磚使用sklearn筆記本適合並行的估計量。Sklearn使用joblib loky後端。現在,我已經在磚我可以導入的文件自定義分類器,和一切工作正常。但是,如果我真的將該文件中的代碼複製到磚筆記本和運行,我得到以下輸出和錯誤:
(平行(n_jobs = 1)):使用後端LokyBackend 4並發工人。(平行(n_jobs = 1)):完成118年任務|時間:2.1秒(平行(n_jobs = 1)): 1000 1000 |時間:4.3秒完成(平行(n_jobs = 1)):使用後端LokyBackend 4並發工人。(平行(n_jobs = 1)):完成33任務|時間:6.5秒(平行(n_jobs = 1)):完成154年任務|時間:48.5秒(平行(n_jobs = 1)): 182 182 |時間:57.4秒完成(平行(n_jobs = 1)):使用後端LokyBackend 4並發工人。(平行(n_jobs = 1)):完成104年任務|時間:1.8秒(平行(n_jobs = 1)): 1000 1000 |時間:3.3秒完成配件4折疊為每個1候選人,共計4符合/磚/ python / lib / python3.5 /網站/ sklearn / model_selection / _split。py: 626:警告:y隻有1中人口最少的類成員,太少。成員在任何類的最小數量不能小於n_splits = 4。% (min_groups self.n_splits)),警告)(平行(n_jobs = 1)):使用後端LokyBackend 4並發工人。PicklingError:不能pickle的任務派遣工人。
joblib有一些不同的功能使用導入的類和定義類時在筆記本上嗎?我可以提供堆棧跟蹤,如果是很有幫助的,但錯誤時調用估計量。合適,估計是scikit-learn GridSearchCV。
嗨,aromano
我知道這個問題開了大約一年前,但是我麵臨同樣的問題,我可以解決它。所以,我分享的解決方案以幫助別人。
也許,你用SparkTrials優化模型的hyperparameters磚,在這種情況下,你需要做的3件事:
1.定義兩個環境變量:
進口os操作係統。環境(“DATABRICKS_HOST”) = " <磚主機>”操作係統。環境(“DATABRICKS_TOKEN”) = " <你的磚牌>”
2。注冊火花作為joblib.Parallel端:
從joblibspark進口register_spark register_spark ()
3所示。定義joblib。平行的“火花”。例如:
平行(n_jobs = 1,後端=“火花”)
我希望這有助於