Pig Latin JOIN错误

时间:2018-04-17 14:32:45

标签: hadoop hdfs bigdata apache-pig

我正在加载两个数据集A,B

A= LOAD  [datapath]
B= LOAD  [datapath]

我想通过id字段加入A和B的所有字段.A和B都有公共字段id和其他字段。当我通过id执行JOIN时:

AB= JOIN A by id, B by id;

结果数据集AB包含两个类似的字段id列,但是,它只能显示id字段的一列。我在这做错了什么?

1 个答案:

答案 0 :(得分:2)

这是预期的行为,当连接两个数据集时,所有列都包括在内(即使是那些你加入的列)

您可以查看here

如果要删除列,可以使用generate语句执行此操作。但首先你要知道不受欢迎的柱子的位置。

如果该列例如位于第3位

C = FOREACH AB GENERATE $1,$2, $4, $5...;

根据评论进行修改 您也可以在不知道位置的情况下使用生成语句。例如:

C = FOREACH AB GENERATE A::id AS id, A::foo AS foo, B::bar AS bar;