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 使用逗号和空格加载数据(我该怎么做?)的主要内容,如果未能解决你的问题,请参考以下文章

具有多个分隔符的 apache pig 加载数据

仅当它在 Pig 中的内部引号(“”)时才替换逗号(,)

使用 PIG 删除空格

如何在pig中加载带有制表符和逗号的数据集

加载值字段包含逗号和特殊字符的 csv 文件时,Hadoop Pig“加载”问题

Pig - 删除 gzip 文件中嵌入的换行符和逗号