我想用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小时治疗无结果
如果您可以建议我如何正确加入这些活动,请先谢谢您
最佳答案
在执行联接之前,需要缓存要联接的所有表。我建议缓存它们,对它们进行计数,然后执行连接。我也遇到过类似的问题,但是在对缓存的表执行联接之后,运行时间将大大减少。