我有两个数据集名称dataset1
和dataset2
,dataset1
就像
empid empame
101 john
102 kevin
和dataset2
就像
empid empmarks empaddress
101 75 LA
102 69 NY
dataset2
将非常庞大,我需要处理这两个数据集上的一些操作,并且需要从上面两个datasets
获得结果。
据我所知,现在我有两个处理这些数据集的选项:
1.将 dataset1 (大小较小)存储为<strong>配置单元查找表,并且必须通过 Spark
处理它们 2.通过使用 Spark Broadcast Variables ,我们可以处理这些dataset
。
任何人都建议我哪一个是更好的选择。
答案 0 :(得分:2)
这应该是比上述两个选项更好的选择。
因为你有共同密钥,你可以做内连接。
dataset2.join(dataset1, Seq("empid"), "inner").show()
您也可以使用broadcast
函数/提示。这意味着你要告诉框架,应该向每个执行者广播小数据帧,即数据集1。
import org.apache.spark.sql.functions.broadcast
dataset2.join(broadcast(dataset1), Seq("empid"), "inner").show()
另请查看更多详情..