我想用pyspark在多个表上做更多的联接,

然后我想按日期划分
我的桌子:

我的设置如下:
    10GO MEMORY驱动程序
    5个内核和10G内存的10名工人
    纱线客户

表格= 700 MO

表2 = 1GB

表3 = 3Go

表4 = 12

表4转到

table5 = 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小时治疗无结果

如果您可以建议我如何正确加入这些活动,请先谢谢您

最佳答案

在执行联接之前,需要缓存要联接的所有表。我建议缓存它们,对它们进行计数,然后执行连接。我也遇到过类似的问题,但是在对缓存的表执行联接之后,运行时间将大大减少。

09-25 21:20