Hadoop Pig拉丁连接错误
我正在加载两个数据集A,BHadoop Pig拉丁连接错误,hadoop,hdfs,bigdata,apache-pig,Hadoop,Hdfs,Bigdata,Apache Pig,我正在加载两个数据集A,B A= LOAD [datapath] B= LOAD [datapath] 我想通过id字段联接A和B的所有字段。A和B都有公共字段id和其他字段。执行“按id联接”时: AB= JOIN A by id, B by id; 结果数据集AB包含字段id的两个类似列,但是,它只能显示id字段的一列。我做错了什么 这是预期的行为,当连接两个数据集时,所有列都包括在内(即使是您要连接的那些列) 你可以查一下 如果要删除列,可以使用generate语句。但首先你需要知
A= LOAD [datapath]
B= LOAD [datapath]
我想通过id字段联接A和B的所有字段。A和B都有公共字段id和其他字段。执行“按id联接”时:
AB= JOIN A by id, B by id;
结果数据集AB包含字段id的两个类似列,但是,它只能显示id字段的一列。我做错了什么 这是预期的行为,当连接两个数据集时,所有列都包括在内(即使是您要连接的那些列) 你可以查一下 如果要删除列,可以使用
generate
语句。但首先你需要知道不想要的纵队的位置
例如,如果该列位于第三个位置
C = FOREACH AB GENERATE $1,$2, $4, $5...;
从评论中编辑
您也可以在不知道位置的情况下使用generate语句。例如:
C = FOREACH AB GENERATE A::id AS id, A::foo AS foo, B::bar AS bar;
您可以在不知道位置的情况下使用generate语句(事实上,我不建议使用position,因为如果您在上游更改一行代码,您的代码将不健壮)。例如,
C=FOREACH AB生成A::id作为id,A::foo作为foo,B::bar作为bar代码>@savage数据,很好知道。我会用这个更新答案。谢谢