一、单表关联,还是前面的问题:
源数据:
Tom Lucy
Tom Jack
Jone Lucy
Jone Jack
Lucy Mary
Lucy Ben
Jack Alice
Jack Jesse
Terry Alice
Terry Jesse
Philip Terry
Philip Alma
Mark Terry
Mark Alma
这是一个child-parent表,第一列是child,第二列是parent。现在要求输出"grandchild--grandparent"表。
1.数据准备:
2.操作:即用到表的自身连接。
hive> insert overwrite local directory "/home/zt/bb.txt"
> row format delimited fields terminated by ' '
> select gl1.child,gl2.parent from gl gl1,gl gl2 where gl1.parent=gl2.child;
现在打开本地/home/zt目录下的bb.txt文件夹(即使创建的是文件,也会被覆盖成文件夹),打开里面的文件:
Tom Mary
Jone Mary
Tom Ben
Jone Ben
Tom Alice
Jone Alice
Tom Jesse
Jone Jesse
Philip Alice
Mark Alice
Philip Jesse
Mark Jesse
二、多表关联:
见Hadoop MapReduce分类下的多表关联里面的工厂----地址问题。这个问题用hive解决就容易多了,简单到没有写的必要了。不过这里需要注意的是格式问题,尤其是建表时候的格式,按什么样的format能够把源数据导入表中。