gpt4 book ai didi

hadoop - 如何使用 Pig 将数据存储在 HDFS 上的多个分区文件中

转载 作者:可可西里 更新时间:2023-11-01 14:38:25 25 4
gpt4 key购买 nike

我有一个 pig 作业,它分析大量日志文件并生成一组属性和一组具有这些属性的 ID 之间的关系。我想将这种关系存储在 HDFS 上,但我希望以一种对其他 Hive/Pig/MapReduce 作业友好的方式来操作数据或数据子集,而无需摄取完整数据我的 Pig 作业的输出,因为这是大量数据。

例如,如果我的关系模式是这样的:

relation: {group: (attr1: long,attr2: chararray,attr3: chararray),ids: {(id: chararray)}}

我真的很想能够对这些数据进行分区,将其存储在如下所示的文件结构中:

/results/attr1/attr2/attr3/file(s)

路径中的 attrX 值是组中的值,文件仅包含 ID。这将使我能够轻松地对数据进行子集化以进行后续分析,而无需重复数据。

即使使用自定义 StoreFunc,这样的事情是否可能?我应该采用其他方法来实现这个目标吗?

我是 Pig 的新手,所以任何关于我的方法的帮助或一般性建议都将不胜感激。

提前致谢。

最佳答案

Multistore 并不完全适合我尝试做的事情,但它证明了如何编写自定义 StoreFunc 来写入多个分区输出文件的一个很好的例子。我下载了 Pig 源代码并创建了我自己的存储函数来解析组元组,使用每一项来构建 HDFS 路径,然后解析 ID 包,将每行一个 ID 写入结果文件。

关于hadoop - 如何使用 Pig 将数据存储在 HDFS 上的多个分区文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com