我寫了下麵的代碼:
data =火花。sql(“選擇A_adjClose、AA_adjClose AAL_adjClose, AAP_adjClose, AAPL_adjClose deltabase。a_30min_delta deltabase。aa_30min_delta deltabase。aal_30min_delta deltabase。aap_30min_delta deltabase。aapl_30min_delta”) spark.conf.set (“spark.sql.execution.arrow。啟用”、“真實”)#這部分保持運行命令data_pd = data.toPandas () df_pct = data_pd.pct_change (1)
困在.toPandas()的代碼這部分。
我隻是發現了一個解決方案。
今天,我打開Azure磚。當我導入的python庫。磚告訴我,toPandas()棄用,我建議使用toPandas。
下麵的解決方案工作原理:使用toPandas而不是toPandas ()
data =火花。sql(“選擇A_adjClose、AA_adjClose AAL_adjClose, AAP_adjClose, AAPL_adjClose deltabase。a_30min_delta deltabase。aa_30min_delta deltabase。aal_30min_delta deltabase。aap_30min_delta deltabase。aapl_30min_delta”)顯示(數據)spark.conf.set (“spark.sql.execution.arrow。啟用”、“真實”)data_pd = data.toPandas
然而,當我試圖計算百分比變化使用pct_change(),它不工作。還沒有投入pyspark.pandas pct_change ()
#這失敗因為pct_change()函數尚未投入pyspark。熊貓df_pct = data_pd.pct_change (1)
另一個解決方案是使用:pandas_api ()轉換的火花dataframe pandas-spark dataframe。
這允許我使用pct_change()轉換後引發dataframe pandas-spark dataframe
data_pd.pct_change data_pd = data.pandas_api () ()
我試圖取代.to_pandas與.to_pandas_on_spark()(),但是有一個警告消息和一個錯誤信息:
/磚/火花/ python / pyspark / sql /dataframe.py:3407:FutureWarning: DataFrame。to_pandas_on_spark棄用。使用DataFrame。pandas_api代替。
warnings.warn (
SparkException:工作階段失敗而終止:任務0階段21.0失敗了4次,最近的失敗:在舞台上失去了任務0.3 21.0 (TID 24)(10.139.64.4執行人3):ExecutorLostFailure(執行人3退出正在運行的任務之一所致)原因:遺囑執行人心跳176959毫秒後超時