取消
顯示的結果
而不是尋找
你的意思是:

誤差在熊貓udf使用磚,sc.broadcasting隨機森林從Kedro加載MLFlow記錄器數據集,不能_thread泡菜”。RLock的對象

ryojikn
新的貢獻者三世

我想播放一個隨機森林(sklearn 1.2.0)最近從mlflow加載,並使用熊貓UDF預測模型。

然而,相同的代碼工作完全在我們OnPrem火花2.4 +集群。

我認為這是由於火花2.4到3的變化,可能一些突發的變化與熊貓UDF API,但是我已經改變到新的模板和同樣的行為仍然會發生。

模式= input_df.drop (" ID ")。模式模式。添加(StructField(“預測”,IntegerType()),假)模式。添加(StructField (“predict_proba FloatType()),假)@pandas_udf(模式,PandasUDFType.GROUPED_MAP) def udf_predict (df: pd.DataFrame) - > pd。DataFrame: df = df(列表(input_df.drop (" ID ") .columns)] y_pred = broadcasted_model.value.predict (df)如果hasattr (broadcasted_model。價值,“predict_proba”): prediction_scores = broadcasted_model.value.predict_proba (df) df (“predict_proba”) = prediction_scores (: 1) df(“預測”)= y_pred df返回

上麵的代碼相當簡單,它應該正常工作與舊版本(火花2.4作品完美,即使新的熊貓udf選項,沒有一個改變pyspark 3)

它給了我以下錯誤消息:

在predict_with_regression output_df = partitioned_df.groupby (scoring_partition)蘋果(udf_predict)文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql /熊貓/ group_ops。py”, 86行,在應用返回self.applyInPandas (udf。函數模式= udf.returnType)文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql /熊貓/ group_ops。py”, 201行,在applyInPandas udf_column = udf (* (df (col)坳df.columns])文件”/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql / udf。py”, 199行,在包裝器返回自我(* args)文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql / udf。py”, 177行,在__call__ judf =自我。_judf文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql / udf。py”, 161行,在_judf自我。_judf_placeholder = self._create_judf()文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql / udf。py”, 170行,在_create_judf wrapped_func = _wrap_function (sc,自我。函數,self.returnType)文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark / sql / udf。py”, 34歲,在_wrap_function pickled_command, broadcast_vars, env,包括= _prepare_for_python_RDD (sc、命令)文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark /抽樣。py”, 2850行,在_prepare_for_python_RDD pickled_command = ser.dumps(命令)文件“/ opt / conda / env / kedro-new-runtime / lib / python3.8 /網站/ pyspark /序列化器。py”, 483行,轉儲提高pickle.PicklingError _pickle(味精)。PicklingError:不能序列化對象:TypeError:不能_thread泡菜”。RLock的對象

我真的不知道,甚至嚐試使用線程釋放功能,但它對我說,這兩個隨機森林對象,以及播放,他們都沒有鎖,因此發布選項不能被完成。

任何想法如何解決這個RLock情況?

沒有添加自定義代碼,隻是pyspark 3.2和scikit 1.2.0學習,我的意思是,該模型不是包在任何自定義類。

1回複1

ryojikn
新的貢獻者三世

有人知道嗎?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map