Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop Pig拉丁连接错误_Hadoop_Hdfs_Bigdata_Apache Pig - Fatal编程技术网

Hadoop Pig拉丁连接错误

Hadoop 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,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
语句。但首先你需要知道不想要的纵队的位置

例如,如果该列位于第三个位置

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数据,很好知道。我会用这个更新答案。谢谢