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

如何使用並行處理在磚使用並發工作嗎?

KrishZ
貢獻者

問題

這將是偉大的如果你能建議我如何解決以下問題。我沒能找到網上多的幫助。

答:背景:

A1。我不得不文本操作使用python(如連接,轉化為廣大的醫生,得到廣大的醫生的動詞等)100萬年的記錄

A2。每個記錄需要1秒,這意味著它需要10天100萬條記錄!

A3。沒有我用毫升模型。這隻是基本的文本操作使用python

b高水平問題:

加快上述磚使用並發運行的工作。

c .我一直建議但不確定如何進行下麵的步驟。請幫助如何繼續:slightly_smiling_face:

C1。我建議創建一個在磚我輸入數據(100萬行x 5列)。

C2。加上2 -額外的列結果列和狀態與條目列(南/ InProgress /完成)

C3。把表分成10個工作這樣的記錄狀態=南發送處理(python腳本),和狀態更新為InProgress /完成根據腳本完成的記錄. .

C4。被要求使用火花dataframe在python腳本而不是熊貓dataframe。

d .我已經嚐試:

D1。我隻是改變了我的Python代碼Python熊貓Pyspark.Pandas(這是熊貓的API火花和應該的工作類似於火花Dataframe . .)

D2。但由於以上^,我一直未能實現的改進——我的python代碼執行快30% 300年的記錄,但我認為隻是因為更好的磚處理器(Azure雲)

D3。對於較大的記錄,我的磚noteboook了酸洗錯誤我已經詳細描述stackoverflow問題(不幸的是沒有答案)

4回複4

werners1
尊敬的貢獻者三世

100萬條記錄是什麼。火花可以處理,如果沒有任何問題,甚至在一個工人集群。

最重要的是不要用一個循環遍曆每一個記錄(我懷疑你)當您創建一個dataframe從您的數據,您可以考慮作為一個向量或一組列,可以操縱在一個走。

初版

dataframe = dataframe。withcolumn (“newcol concat (“col1”、“col2”))

這將添加一個列newcol無需擔心循環和狀態等。

謝謝你的回複。

我的主要功能(即遍曆文本處理100萬個樣本)實際上是在dataframe直接使用以下格式:

df(可樂)= df [ColB]蘋果(my_function)。

這是一個“my_function”一些已經無法避免的循環。

例如我們來看一個非常簡單的內置函數str.lower()為“HELLO WORLD”。這對循環和函數的源代碼沒有替代循環(在我看來)

這個問題在我的例子中是循環不能避免因為我的字符串操作不是像連接總是那樣簡單。很多時候涉及正則表達式檢查在400個單詞列表(這個列表不在dataframe)。有時這是一個巨大的函數需要遍曆一個標記化的寬大的文檔對象(找到實體像公司名稱)

werners1
尊敬的貢獻者三世

我仍然不相信你需要的循環。

正則表達式的匹配可以通過使用火花regexp_replace, regexp_find等等。

你單詞列表檢查也可以放在dataframe。

我同意它似乎並不明顯,但當你開始循環你告別並行處理。

Vidula_Khanna
主持人
主持人

嗨@Krishna Zanwar

希望一切都好!隻是想檢查如果你能解決你的問題,你會很高興分享解決方案或答案標記為最佳?其他的請讓我們知道如果你需要更多的幫助。

我們很想聽到你的聲音。

謝謝!

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

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

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

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

Baidu
map