【发布时间】:2016-03-17 12:26:11
【问题描述】:
我对 hadoop 很陌生,所以请多多包涵。任何帮助,将不胜感激。
我需要加入 2 张桌子, 表 1 将有 pagename , pagerank 例如。实际数据集很大,但模式相似
pageA,0.13
pageB,0.14
pageC,0.53
表 2,它是一个简单的 wordcount 类型的表,带有 word 、 pagename 例如。实际数据集很大,但模式相似
test,pageA:pageB
sample,pageC
json,pageC:pageA:pageD
现在,如果用户从第二个表中搜索任何单词,我应该根据他们在表 1 中的 pagerank 给他页面的结果。
搜索测试时的输出,
test = pageB,pageA
我的方法是将第一个表加载到分布式缓存中。在 map 方法中读取第二个表获取单词的页面列表,使用加载到分布式缓存中的第一个表中的 pagerank 信息对列表进行排序。这适用于我正在工作的数据集,但想知道是否有更好的方法,也想知道如何使用 pig 或 hive 完成此连接。
【问题讨论】:
-
我个人会使用 Pig,但您是否看过 Pig 或 Hive Join 语法?文档中的示例很简单
-
两张表在哪里?在蜂巢?在文件中?
-
它作为文件存储在hdfs中。
-
Pig 和 Hive 的构建目标几乎完全相同 :)
-
李牧北说得对。将数据加载到 2 个配置单元表中,并像普通数据库表一样连接它们。
标签: hadoop hive apache-pig hadoop2