hadoop - 如何从带有 Pig 的袋子中获取很少的值?

标签 hadoop apache-pig

我有这样的文件:

cat > hdfs_bag.txt
{(1,pawel,kowalski,36),(4,pawel,kowalski,47)}
{(2,john,smith,55),(5,john,smith,66)}
{(3,paul,psmithski,44),(6,paul,psmithski,88)}

然后我加载它并把它转换成一个包:

grunt> a = load 'hdfs_bag.txt' as (b1 : bag { k1:tuple (id, name, surname, age)});
grunt> describe a;
a: {b1: {k1: (id: bytearray,name: bytearray,surname: bytearray,age: bytearray)}}

我想要实现的结果是包含两个仅包含 id 和 age 的元组的包:

({(1,36),(4,47)})
({(2,55),(5,66)})
({(3,44),(6,88)})

您至少可以建议第一步吗?

问候
帕维尔

最佳答案

我找到了一个解决方案:

 b = foreach a generate $0.($0,$3);

给出预期的结果:

({(1,36),(4,47)})
({(2,55),(5,66)})
({(3,44),(6,88)})

很简单,但不是很明显...

关于hadoop - 如何从带有 Pig 的袋子中获取很少的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30268504/

相关文章:

hadoop - 如何在Java代码中获得HDFS可用空间?

hadoop - NameNode 和辅助 Namenode

hadoop - 从oozie调用Pig时出错

java - HADOOP - 1.2.1 稳定版的字数统计示例

c# - Java MongoDB Hadoop 连接器是否有 C# 等效项?

hadoop - Pig错误:无法打开别名的迭代器

string - 查找一个字符串是否存在于 Pig 中的另一个字符串中

hadoop - pig 的分割无效的野外项目

java - MapWritable 用新添加的键替换所有现有键 - Hadoop MapReduce 2.6.4

hadoop - 对 Hive 中存储的数据运行 Pig 查询