假设我加入了几个这样的Spark数据帧:
abcd = a.join(b, 'bid', 'inner')\
.join(c, 'cid', 'inner')\
.join(d, 'did', 'left')\
.distinct()
abcd.head() # takes 5-7 min.head调用触发流水线执行,耗时5-7分钟。这跟那些joins有什么关系吗?您将如何使管道更快?
发布于 2018-05-15 00:15:24
head()只返回一条记录。如果您只需要第一个记录,则不需要distinct()。这可能会让你从昂贵的洗牌中解脱。
但是,考虑到您有上面的连接,并且结果数据集没有排序-不能保证返回什么记录。
https://stackoverflow.com/questions/50333586
复制相似问题