数据帧A(百万条记录)其中一列是create_date,modified_date
Dataframe B 500记录具有start_date和end_date
当前方法:
Select a.*,b.* from a join b on a.create_date between start_date and end_date
上述作业需要半个小时或更长时间才能运行。
如何提高性能?


发布于 2016-08-27 01:51:19
DataFrames目前还没有这样的直接连接方法。在执行连接之前,它将完全读取这两个表。
https://issues.apache.org/jira/browse/SPARK-16614
您可以使用RDD来利用joinWithCassandraTable函数
发布于 2016-08-27 02:03:03
正如其他人所建议的,其中一种方法是广播较小的数据帧。这也可以通过配置以下参数自动完成。
spark.sql.autoBroadcastJoinThreshold如果数据帧大小小于此处指定的值,Spark将自动广播较小的数据帧,而不是执行连接。您可以阅读有关此here的更多信息。
https://stackoverflow.com/questions/39171732
复制相似问题