【问题标题】:Processing Hive Lookup tables in Spark vs Spark Broadcast variables在 Spark 与 Spark 广播变量中处理 Hive 查找表
【发布时间】:2016-12-13 04:33:30
【问题描述】:

我有两个数据集名称 dataset1dataset2dataset1 就像

empid  empame
101    john
102    kevin

dataset2 就像

empid  empmarks  empaddress
101      75        LA
102      69        NY

dataset2 将非常庞大,我需要对这两个数据集进行一些操作,并且需要从以上两个datasets 中获取结果。 据我所知,现在我有两种选择来处理这些数据集:

1.将dataset1(较小的)存储为hive查找表,并通过Spark

进行处理

2.通过使用 Spark 广播变量,我们可以处理这些dataset

请任何人建议我哪个是更好的选择。

【问题讨论】:

  • 现在这些数据集存在于配置单元或文本文件中吗?
  • 存在于文本文件中

标签: hadoop apache-spark dataframe spark-dataframe lookup


【解决方案1】:

这应该比提到的那两个选项更好。

因为你有公共密钥,你可以进行内部连接。

dataset2.join(dataset1, Seq("empid"), "inner").show()

您也可以像这样使用broadcast 函数/提示。这意味着您告诉框架应该将小数据帧(即 dataset1)广播给每个执行程序。

import org.apache.spark.sql.functions.broadcast
dataset2.join(broadcast(dataset1), Seq("empid"), "inner").show()

另请参阅以了解更多详细信息..

【讨论】:

  • broadcast 函数添加了导入
  • @Ram Ghadiyaram ,请您分享您的电子邮件 ID 或Skype ID。这样我就可以清楚地解释我的问题
猜你喜欢
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多