在猪中将列的值转换为大写
Convert the value of a column to uppercase in pig
我需要在 pig 中将列的值转换为大写。
可以使用 UPPER
来完成,但这会创建一个新列。
例如:
A = Load 'MyFile.txt' using PigStorage(',') as (column1:chararray, column2:chararray, column3:chararray);
Dump A;
Returns
a,b,c
d,e,f
现在我需要将第二列转换为大写。
B = Foreach A generate *,UPPER(column2);
Dump B;
returns
a,b,c,B
e,f,g,F
但我需要
a,B,c
e,F,g
如果有办法,请告诉我。
我没试过,但你可以这样试
B = Foreach A generate column1,UPPER(column2),column3;
您可以使用 Apache pig 默认提供的用户定义函数来实现
找到存钱罐
命令
查找/-名称"piggybank*.jar*"
now goto pig grunt shell
代码
grunt> 注册 /usr/local/pig-0.16.0/contrib/piggybank/java/piggybank.jar;
grunt> A = 使用 PigStorage(',') as (column1:chararray, column2:chararray, column3:chararray);
加载 'data/MyFile.txt'
grunt> 转储 A;
结果
(a,b,c)
(d,e,f)
现在将第二列转换为大写。
grunt> B = foreach A 生成 column1,org.apache.pig.piggybank.evaluation.string.UPPER(column2),column3;
grunt> 转储 B;
结果
(a,B,c)
(d,E,f)
在下一行中使用“*”是额外列的原因:
B = FOREACH A generate *, UPPER(column2);
改为使用以下内容:
B = Foreach A generate column1, UPPER(column2), column3;
我需要在 pig 中将列的值转换为大写。
可以使用 UPPER
来完成,但这会创建一个新列。
例如:
A = Load 'MyFile.txt' using PigStorage(',') as (column1:chararray, column2:chararray, column3:chararray);
Dump A;
Returns
a,b,c
d,e,f
现在我需要将第二列转换为大写。
B = Foreach A generate *,UPPER(column2);
Dump B;
returns
a,b,c,B
e,f,g,F
但我需要
a,B,c
e,F,g
如果有办法,请告诉我。
我没试过,但你可以这样试
B = Foreach A generate column1,UPPER(column2),column3;
您可以使用 Apache pig 默认提供的用户定义函数来实现
找到存钱罐
命令
查找/-名称"piggybank*.jar*"
now goto pig grunt shell
代码
grunt> 注册 /usr/local/pig-0.16.0/contrib/piggybank/java/piggybank.jar;
grunt> A = 使用 PigStorage(',') as (column1:chararray, column2:chararray, column3:chararray);
加载 'data/MyFile.txt'grunt> 转储 A;
结果
(a,b,c)
(d,e,f)
现在将第二列转换为大写。
grunt> B = foreach A 生成 column1,org.apache.pig.piggybank.evaluation.string.UPPER(column2),column3;
grunt> 转储 B;
结果
(a,B,c)
(d,E,f)
在下一行中使用“*”是额外列的原因:
B = FOREACH A generate *, UPPER(column2);
改为使用以下内容:
B = Foreach A generate column1, UPPER(column2), column3;