我有一个需要在我的数据框中计算列的要求。对于大数据框的每一行,我需要将 从和到 与另一个数据框 flag 和 date 来计算新列。
基本上,第二张表是一个查找表,需要用于执行我的计算。我可以看到发生了很多洗牌,这些洗牌反过来又影响了工作绩效。 例如: Large_DF
+ ------ + ---------- + ---------- +
| Loc |从|到|
+ ------ + ---------- + ---------- +
| A | 2016-03-31 | 2016-03-31 |
| A | 2016-02-28 | 2016-02-30 |
| A | 2016-01-31 | 2016-02-11 |
| B | 2014-12-31 | 2015-01-10 |
+ ------ + ---------- + ---------- +
+ ------ + ---------- + ---------- +
| Loc |日期|标志|
+ ------ + ---------- + ---------- +
| A | 2016-03-31 |是|
| A | 2016-02-11 |否|
| A | 2016-02-11 |是|
| B | 2015-01-10 |否|
+ ------ + ---------- + ---------- +
我打算加入Loc上的大表。查找表不会更新,并且很小。有关如何以最佳方式执行此操作的任何建议。
答案 0 :(得分:0)
您可以通过在DataFrame上调用广播之前在DataFrame上调用广播来向Spark SQL暗示应广播给定的DF以进行联接,例如
df1.join(broadcast(df2),"key")
广播表很小。
也就是说,您确定加入条件还可以吗?