使用Hadoop Mapreduce在同一数据集中连接两个键

时间:2018-10-24 17:34:33

标签: java hadoop mapreduce bigdata

我是Hadoop的新手,我试图在Java中运行hadoop mapreduce作业以加入一些数据并将其输出为CSV文件。我正在使用hadoop 3.1.1。我有一个包含混合数据的数据集,并且这些数据每天都是JSON文件。每条记录一行,每条记录都有一个连接键(id),还有一个具有不同值的类型(typeA,typeB等)以及一些其他字段。我下面有很多行,由于JSON文件的分区,typeA和typeB可能相距很远

外观如下:

id   starttime endtime type   otherfields
1      x        y      typeA  foo,bar
1      a        b      typeB  hello,world
2      p        q      typeA  foo,bar 
2      r        s      typeC  hadoop,mapreduce
1      c        d      typeB  foo1,bar1

现在我的用例是使用连接键(id)专门连接typeA和typeB,我希望结果如下所示

我还要添加一个ID相同的typeA可以有很多typeB记录。有一对多的关系,所以我想为每个重复重复typeA值的typeB记录添加两行。

id,starttimetypeA,endtimetypeA,starttimetypeB,endtimetypeB,otherfieldstypeA,otherfieldstypeB
1, x, y, p, q, foo, bar, hello, world
1, x, y, c, d, foo1, bar1, hello, world

我一直在阅读有关地图侧连接和减少侧连接的信息。解决加入此混合数据集的最佳策略是什么?

0 个答案:

没有答案