hadoop - Pig Latin JOIN 错误

标签 hadoop hdfs bigdata apache-pig

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

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

我想通过 id 字段连接 A 和 B 的所有字段。A 和 B 都有公共(public)字段 id 和其他字段。当我通过 id 执行 JOIN 时:

AB= JOIN A by id, B by id;

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

最佳答案

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

可以查一下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;

关于hadoop - Pig Latin JOIN 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880864/

相关文章:

hadoop - 在 pig 中有条件地分组记录

java - 为什么我在 hadoop 的 mapreduce 中得到 3xx 重复项?

hadoop - 在 Hadoop 中导航文件系统

apache-spark - 如何在 spark 数据帧中的 ISIN 运算符中传递数据帧

java - Amazon Hadoop 2.4 + Avro 1.77 : Found interface org. apache.hadoop.mapreduce.TaskAttemptContext,但预期类

java - 使用Hadoop Map Reduce执行多种计算

hadoop - 当 parquet 使用 Snappy 算法而不是 gzip 时,将 parquet 数据写入 hive 的 spark 作业卡在了最后一个任务中

java - Flink ParquetSinkWriter FileAlreadyExistsException

hbase - hbase web UI 上的 'other regions' 是什么意思?

r - 相当快地保存非常大的 R 数据帧