Hadoop 在Spark与Spark广播变量中处理配置单元查找表
我有两个数据集名称Hadoop 在Spark与Spark广播变量中处理配置单元查找表,hadoop,apache-spark,dataframe,spark-dataframe,lookup,Hadoop,Apache Spark,Dataframe,Spark Dataframe,Lookup,我有两个数据集名称dataset1和dataset2和dataset1类似 empid empame 101 john 102 kevin empid empmarks empaddress 101 75 LA 102 69 NY 而dataset2就像 empid empame 101 john 102 kevin empid empmarks empaddress 101 75
dataset1
和dataset2
和dataset1
类似
empid empame
101 john
102 kevin
empid empmarks empaddress
101 75 LA
102 69 NY
而dataset2
就像
empid empame
101 john
102 kevin
empid empmarks empaddress
101 75 LA
102 69 NY
dataset2
将非常庞大,我需要处理这两个数据集上的一些操作,并需要从以上两个数据集
获得结果。
据我所知,现在我有两种选择来处理这些数据集:
1.将数据集1(大小较小)存储为蜂巢查找表,并必须通过Spark对其进行处理
2.通过使用Spark广播变量,我们可以处理这些数据集
任何人请告诉我哪一个是更好的选择。这应该是比上面提到的两个更好的选择 因为您有公共密钥,所以可以进行内部连接
dataset2.join(dataset1, Seq("empid"), "inner").show()
您也可以像这样使用broadcast
函数/提示。这意味着您要告诉框架,应该向每个执行者广播小数据帧,即dataset1
import org.apache.spark.sql.functions.broadcast
dataset2.join(broadcast(dataset1), Seq("empid"), "inner").show()
另外,请查看以了解更多详细信息
- 广播连接将如何工作
广播
看看这个@Ram Ghadiyaram,你能分享你的电子邮件id或skype id吗?这样我就可以清楚地解释我的问题了