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

主在三角洲DataFrame表DLT生活

卡裏爾
新的貢獻者三世

我想申請一個主在DLT dataframe但我有以下警告

筆記本:XXXX的GroupedData使用。主函數,很快就會被棄用。請修複筆記本。

我也有同樣的警告如果我使用函數收集。

它是危險的不正確。

1接受解決方案

接受的解決方案

卡裏爾
新的貢獻者三世

謝謝@Kaniz所有對你的支持。

的解決方案是主外的視圖或表和警告消失了。

在原帖子查看解決方案

6個回答6

Kaniz
社區經理
社區經理

嗨@Ibrahima秋天,要解決許多警告信息在你的代碼中,棄用功能可能會被刪除在未來的更新庫,使您的代碼。

在這種情況下,你是使用GroupedData警告。主函數在三角洲湖。

為了解決棄用警告,您可以直接使用主函數DataFrame。這是一個如何使用它的例子:

假設您有一個DataFrame df列“類別”、“類型”和“價值”。你想主DataFrame基於“類型”列和“價值”列求和。

而不是使用GroupedData。主是這樣的:

結果= df.groupBy(“類別”).pivot .sum(“類型”)(“價值”)

你可以直接使用主函數DataFrame:

結果= df.groupBy(“類別”)。主(“類型”,distinct_types) .sum(“價值”)

在上麵的例子中,distinct_types是不同值的列表中“類型”列。您可以獲得這個列表使用不同和收集方法:

distinct_types = df.select(“類型”).distinct .rdd ()。flatMap(λx: x) .collect ()

收集函數通常是安全的,但是它可能導致問題如果使用大型DataFrame。收集函數從DataFrame中檢索所有數據並將其存儲在司機的記憶。如果DataFrame過大,可能導致司機耗盡內存和應用程序崩潰。

如果你隻需要DataFrame的一個子集,考慮使用或頭函數代替

收集。這些函數允許您指定要檢索的行數,避免潛在的內存問題:

#檢索的第十行= df.take DataFrame子集(10)

總之,最好是解決許多警告信息,確保您的代碼繼續與未來合作庫的更新。此外,使用收集時小心謹慎

函數在大DataFrames避免潛在的內存問題。

卡裏爾
新的貢獻者三世

謝謝@Kaniz所有偉大的回答。這可以是一個很好的解決方法但麵臨的其他問題我是收集功能很快就會棄用在三角洲住表。

嗨@Ibrahima秋天,我理解你的擔憂不以為然的收集在δ函數表。為了解決這個問題,您可以使用替代方法來實現相同的功能。

一種方法是利用toPandas()函數來轉換你DataFrame熊貓DataFrame。通過這種方式,您可以收集本地不使用收集的數據()函數。

例如:-

熊貓作為pd導入#假設您有一個名為“df”的DataFrame pandas_df = df.toPandas() #使用熊貓DataFrame執行操作

然而,至關重要的是要注意,使用toPandas()可能會導致內存問題如果使用大型DataFrames。整個DataFrame將加載到司機節點的內存。

假設你隻需要一小部分數據。在這種情況下,您可以考慮使用()或()函數來檢索一個特定的行數從DataFrame,避免潛在的內存問題:

#檢索的第十行= df.take DataFrame子集(10)

如果你需要使用更大的DataFrames,你可以執行你的操作和轉換使用火花,然後將數據保存到三角洲表或另一個輸出格式像CSV或拚花。通過這種方式,您可以避免在司機需要收集的數據在本地節點,讓你處理更加可伸縮的和有效的。

卡裏爾
新的貢獻者三世

嗨@Kaniz開羅,我得到你的觀點;可能是風險使用toPandas你說但我隻需要檢索特定列的不同值dataframe所以toPandas可能在這種情況下使用。

我將試試這個試驗證實,讓你知道。

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

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

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

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

Baidu
map