hadoop - 如何在 apache pig 中将组转换为集合

标签 hadoop apache-pig mahout bag

我正在使用 Apache Pig 和 Mahout。现在我正在研究 apache mahout 的频繁模式增长。我有以下格式的数据

    user items
    1     i1
    1     i2
    1     i3
    2     i2
    2     i5
    2     i6
    3     i1
    3     i4

--加载数据

data = LOAD '$input' AS (user,item);

然后我按用户对数据进行分组

grpdata = GROUP data BY user;

我明白了

1 {(1,i1),(1,i2),(1,i3)}
2 {(2,i2),(2,i5),(2,i6)}
3 {(3,i1),(3,i4)}

这是我的问题,如何将分组后创建的包更改为以下格式

1 i1,i2,i3
2 i2,i5,i6
3 i1,i4

最佳答案

使用bag projection可以只获取你感兴趣的字段:

proj = FOREACH grpdata GENERATE group, data.item;

这会给你

1 {(i1),(i2),(i3)}
2 {(i2),(i5),(i6)}
3 {(i1),(i4)}

不幸的是,没有内置功能可以修改将包序列化为字符串的方式。您将需要编写一个 UDF 来为您完成这部分工作。

关于hadoop - 如何在 apache pig 中将组转换为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773570/

相关文章:

hadoop - Pig Latin:加载一个非常简单的包

java - Pigunit给出错误类别未找到

java - 如何在 Mac 上安装 apache mahout?

python - 在Hadoop中使用PySpark进行多处理

java - 关于调试 Hadoop MapReduce 作业中二级排序问题的任何提示?

hadoop - Spark 存在时 Hadoop 和流解决方案的相关性

java - 在 hbase mapreduce 中传递删除或放置错误

hadoop - 如何在 pig 中总结2个日志文件

hadoop - 使用 Mahout/hadoop/HBase 等大数据技术研究和实现推荐系统的好书?

hadoop - 我如何使用 apache mahout 实现 LDA?