【发布时间】:2018-04-07 20:26:48
【问题描述】:
现在我有以下代码:
df1 = df.filter((df.col1.isin(List1)) | (df.col2.isin(List2)))
我从 dataframe 中做collect() 得到 List1 所以我喜欢使用 join
我尝试了以下
df1=df.filter(df.col2.isin(List2))
df2=df.join(df_List1,'col1','leftsemi')
df3=df1.join(df2,'col1' ,'outer')
我有两个问题:
- 转换原始语句的正确方法是什么
- 在性能方面值得做吗
【问题讨论】:
-
“spark 无法完成工作”是什么意思?帖子中没有作业触发代码
-
我正在收集以检查 df3 的结果
-
您是否检查了 Web UI 以了解发生了什么?这个处理多少数据?初始数据源是什么?您是否有足够的资源以预期的速度运行?您是否使用任何缓存?
-
第一个命令运行良好,使用外连接是否正确?
-
使用外连接是可以的并且确实有效。这可能只是数据集大小和可用资源的问题。外部连接可以产生大量数据,集群可能正在为此苦苦挣扎。您可能需要查看 web ui
标签: python apache-spark join pyspark