Apache Pig 使用逗号和空格加载数据(我该怎么做?)
Posted
技术标签:
【中文标题】Apache Pig 使用逗号和空格加载数据(我该怎么做?)【英文标题】:Apache Pig Load data with comma and space (How can I do?) 【发布时间】:2021-04-23 03:21:58 【问题描述】:这是我的问题: 我想知道如何加载这些数据:
输入数据: 18(约翰,玛丽) 22(阳光明媚的奥斯汀) 78(理查德,爱丽丝) 87(约翰尼,)
我想将这些数据加载到变量 A
所以我写了这个:
A = Load 'data' AS (age:int, couple:(husband:chararray, wife:chararray));
但是当我转储 A 时,结果是这样的: (,) (,) (,) (,)
但我想要这样: (18,(约翰,玛丽)) (22,(奥斯汀,阳光)) (78,(理查德,爱丽丝)) (87,(约翰尼,)) 我该如何解决?
【问题讨论】:
【参考方案1】:请看这里:In Pig latin, am not able to load data as multiple tuples, please advice
可能值得拥有一个包含单独列的普通 CSV。 然后你可以像这样加载:
A = LOAD data USING PigStorage(',') AS (age:int, person1:chararray, person2:chararray);
B = FOREACH A GENERATE *, (person1, person2) AS couple:tuple(person1:chararray, person2:chararray);
可以尝试将您的负载更改为:
A = Load 'data' AS (age:int, couple:tuple(husband:chararray, wife:chararray));
您明确表示要将数据作为元组加载。
【讨论】:
以上是关于Apache Pig 使用逗号和空格加载数据(我该怎么做?)的主要内容,如果未能解决你的问题,请参考以下文章