【问题标题】:Apache Spark 2.4: Why is there "No Broadcast"?Apache Spark 2.4:为什么会有“无广播”?
【发布时间】:2020-03-27 02:26:41
【问题描述】:

我已经用

配置了 spark-submit

"--conf", "spark.sql.autoBroadcastJoinThreshold=536870912", 512MB

但是 DAG 仍然没有广播连接的较小边。

代码是一个简单的连接。所以我想知道怎么了。

输入是 parquet 文件,存储在 S3 上。

如果需要更多信息进行进一步分析,请告诉我。

【问题讨论】:

    标签: performance apache-spark bigdata broadcast


    【解决方案1】:

    根据这个博客,

    完全外连接不支持 BHJ。右外连接只能广播左侧表,其他左连接只能广播右表。

    这就是广播没有发生的原因。

    【讨论】:

    • 我想你忘记包含博客链接了。
    【解决方案2】:

    我的猜测是配置 spark.sql.autoBroadcastJoinThreshold 在某处被覆盖或未正确设置。您应该在 Spark UI 中的 Environment 选项卡中找到它并检查它是否设置正确。 如果您只需要快速修复,您还可以使用提示 .broadcast 在您已经知道很小的数据集上强制广播。

    【讨论】:

    • 我检查了Spark UI ->Environment 发现spark.sql.autoBroadcastJoinThreshold 536870912,所以我觉得配置还可以。我不能强制广播,因为每一方都会根据输入进行评估。那就是我更喜欢设置阈值,让 spark 来做决定。
    • 您能分享一下您的集群特征吗?
    • @CarlosDavidPeña 我在我的问题中添加了配置。但我想我知道原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2019-05-05
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多