2016-01-17 53 views
0

我希望做更多的加入與pyspark多個表,聯接不在火花1.5.2工作超過5數據幀

,然後我想按日期進行分區 我的表:

我的設置如下: 10GO MEMORY駕駛員 10工人用5芯和10G存儲器 紗線顧客

表= 700 MO

表2 = 1GB

表3 = 3GO

表4 = 12

表4中去

表5-1 = 6go

我試圖

sqlcontext.sql ("select * from Tab1 left join tab2 is tab1.numcnt =  

tab2.numcnt left join tab3 is tab1.numcnt = tab3.numcnt 
left join TAB4 is tab1.numcnt = tab4.numcnt 
") 

當我使用這個查詢她需要瘋狂的時光

我也嘗試了數據幀的方法:

df = join df_tab1.join (df_tab2, df_tab.NUMCNT df_tab2.NUMCNT == 'left_outer') 

dfjoin.join (df_tab3, df_join.NUMCNT df_tab3.NUMCNT == 'left_outer') 

同樣的問題,在處理24小時無果

,如果你能告訴我如何正確地加入這些預先感謝您

+0

我無法理解你的代碼。你會介意把它變成有效的東西,所以你的意圖變得更清晰一些了嗎?如果您提供了一個顯示您正在嘗試做什麼的最小示例,您將有更大的獲得幫助的機會。 – karlson

+0

謝謝你karlson,但我的問題很簡單 我想多個連接,但當我嘗試與pyspark, 連續加入,它與(sqlcontext.sql)或(df.join-df2) 我沒有爲什麼在加工24小時後結果爲 ? – malouke

+0

但請看看你的問題。你上一個例子中的行不是正確的Python語句。如果你提供你的實際代碼,人們可能會建議如何改進。 – karlson

回答

0

您需要在執行連接之前緩存您加入的所有表格。我會建議緩存它們,對它們進行計數,然後執行連接。我也面臨類似的問題,但是在執行緩存表的連接之後,運行時顯着減少。