gpt4 book ai didi

hadoop - Pig,用特定列的整数替换字符串

转载 作者:可可西里 更新时间:2023-11-01 16:33:16 26 4
gpt4 key购买 nike

我是 Pig 的新手,所以这可能是一个微不足道的问题。我无法得到合理的答案,因此提出这个问题。

有3列如下:

userid  itemid action
245 4 'view'
245 6 'click'
149 12 'buy'
149 1 'click'

等等……

我有一个映射,例如:'view'=1、'click'=1.4、'buy'= 2.1

我想要的输出是:

userid  itemid action
245 4 1
245 6 1.4
149 12 2.1
149 1 1.4

可以帮助我实现这一目标的简单命令?我需要在第 3 列上执行一些计算,因此不能使用字符串格式。

最佳答案

使用这些映射值在 HDFS 中创建一个映射文件,例如:

action_string action_value
view 1
click 1.4
buy 2.1

假设这个文件存储在<mapping_file> .然后只需加载此文件并将您的原始数据集与此文件结合起来:

mapping = LOAD '<mapping_file>' USING PigStorage() AS action_string, action_value;
joined = JOIN original BY action, mapping BY action_string USING 'replicated';
output = FOREACH joined GENERATE userid, itemid, action_value;

根据您的用例和文件大小,还有其他方法。但我认为这是最灵活的。

关于hadoop - Pig,用特定列的整数替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19393736/

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