mysql - join 在超过 5 个数据帧的 Spark 1.5.2 中不起作用

标签 mysql scala join apache-spark pyspark

我想使用 pyspark 对多个表进行更多连接,

然后我想按日期分区 我的 table :

我的设置如下: 驾驶员 10GO 内存 10个worker,5核,10G内存 yarn 客户

表 = 700 MO

表2 = 1GB

表 3 = 3Go

表4 = 12

表4

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

如果您能告诉我如何正确加入这些,请提前谢谢您

最佳答案

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

关于mysql - join 在超过 5 个数据帧的 Spark 1.5.2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34837073/

相关文章:

MySQL Left Join(我认为)困难

r - 两个数据框的内部连接仍显示所有值

mysql - 对分组查询结果进行逻辑检查

scala - 'self' 在 Scala actor 中如何工作?

scala - 有人可以解释我在 Scala 中的隐式转换吗?

scala - 如何在 Scala 中将 InputStream 转换为 base64 字符串?

sql-server - 从另一个连接列更新列,,

php - MySQL 时间序列数据库,跟踪数量/价格/数据历史记录 — 仅当新值与前一个值不同时才插入新行?

php - 如果新行添加到 MySQL 表,如何实时检查

MySql 查询不使用复合索引