哪个性能更好,广播变量还是广播连接?

Which one will perform better, broadcast variable or broadcast join?

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

我有一个场景需要查找另一个 table/dataset,它有两个字段,即国家名称和国家代码。

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

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

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

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

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

需要注意的一件事是 default broadcast threshold is only 10MiB, so if your dimension table is larger than that, you'll want to explicitly use the broadcast() 提示。