这是一个非常慢的数据帧连接。为什么呢?

时间:2016-12-16 18:53:03

标签: apache-spark spark-dataframe

我是Spark SQL上的Dataframe API的粉丝,但有些东西告诉我这个连接推得太远了。我已经有32个核心可用,但是只有一个任务处于活动状态,这个工作暂停,可能是一个执行器的一个核心。连接中的两个表都被缓存,一个是9 GB,2 GB。

val join = sc_meta
    .join(sd_coverage, 
          (sc_meta("xocs_issn") === sd_coverage("issn") or 
          sc_meta("print_issn") === sd_coverage("issn") or 
          sc_meta("electronic_issn") === sd_coverage("issn") or 
          sc_meta("other_issn") === sd_coverage("issn")) and 
          sc_meta("volume") === sd_coverage("volume") and 
          sc_meta("issue") === sd_coverage("issue"),
          "leftsemi")
join.count

请注意'或'在那里表达。在没有or子句的情况下运行连接在十秒内完成。

重写此查询或采取不同策略的想法?

0 个答案:

没有答案
相关问题