問題
這將是偉大的如果你能建議我如何解決以下問題。我沒能找到網上多的幫助。
答:背景:
A1。我不得不文本操作使用python(如連接,轉化為廣大的醫生,得到廣大的醫生的動詞等)100萬年的記錄
A2。每個記錄需要1秒,這意味著它需要10天100萬條記錄!
A3。沒有我用毫升模型。這隻是基本的文本操作使用python
b高水平問題:
加快上述磚使用並發運行的工作。
c .我一直建議但不確定如何進行下麵的步驟。請幫助如何繼續
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問題(不幸的是沒有答案)
謝謝你的回複。
我的主要功能(即遍曆文本處理100萬個樣本)實際上是在dataframe直接使用以下格式:
df(可樂)= df [ColB]蘋果(my_function)。
這是一個“my_function”一些已經無法避免的循環。
例如我們來看一個非常簡單的內置函數str.lower()為“HELLO WORLD”。這對循環和函數的源代碼沒有替代循環(在我看來)
這個問題在我的例子中是循環不能避免因為我的字符串操作不是像連接總是那樣簡單。很多時候涉及正則表達式檢查在400個單詞列表(這個列表不在dataframe)。有時這是一個巨大的函數需要遍曆一個標記化的寬大的文檔對象(找到實體像公司名稱)