【问题标题】:Which one will perform better, broadcast variable or broadcast join?广播变量或广播连接哪一个会表现得更好?
【发布时间】:2020-06-28 21:28:12
【问题描述】:

我在我的项目中使用带有 Java 8 的 Spark 2.4.1。

我有一个场景,我需要查找另一个表/数据集,其中包含两个字段,即国家名称和国家代码。

另一个流数据将包含国家代码列,我需要在目标/结果数据框中映射相应的国家/地区名称。

据我所知,我们可以使用join来实现上述,使用广播变量和join。

那么从性能的角度来看,这里哪个更好?什么是 处理此类用例的 spark 标准?

【问题讨论】:

    标签: dataframe apache-spark join apache-spark-sql broadcast


    【解决方案1】:

    老实说,它们的表现应该相似,因为它们实际上是在做同样的事情。

    允许 spark 固有地进行广播连接可能有一个非常小的优势,但这可能取决于您的事实表大小和广播变量开销的整体影响。

    有一点需要注意,default broadcast threshold 只有 10MiB,所以如果你的维度表比这个大,你需要明确地使用 broadcast() 提示。

    【讨论】:

    • 1) 这更像是一种直觉,只有不到 200 个国家/地区,您会计算出
    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 2021-09-08
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多