Hadoop ApachePig使用逗号和空格加载数据(我该怎么做?)

Hadoop ApachePig使用逗号和空格加载数据(我该怎么做?),hadoop,apache-pig,Hadoop,Apache Pig,我的问题是: 我想知道如何加载这些数据: 输入数据: 18(约翰、玛丽) 22(奥斯汀,阳光明媚) 78(理查德,爱丽丝) 87(约翰尼,) 我想把这些数据加载到变量A中 所以我写下: A=将“数据”加载为(年龄:int,夫妇:(丈夫:chararray,妻子:chararray)) 但是,当我甩了一张照片时,结果是这样的: (,) (,) (,) (,) 但我想这样: (18,(约翰,玛丽)) (22,(奥斯汀,阳光明媚)) (78,(理查德,爱丽丝)) (87,(约翰尼,) 如何修复它?请参

我的问题是: 我想知道如何加载这些数据:

输入数据:
18(约翰、玛丽)
22(奥斯汀,阳光明媚)
78(理查德,爱丽丝)
87(约翰尼,)

我想把这些数据加载到变量A中

所以我写下:

A=将“数据”加载为(年龄:int,夫妇:(丈夫:chararray,妻子:chararray))

但是,当我甩了一张照片时,结果是这样的:
(,)
(,)
(,)
(,)

但我想这样:
(18,(约翰,玛丽))
(22,(奥斯汀,阳光明媚))
(78,(理查德,爱丽丝))
(87,(约翰尼,)
如何修复它?

请参见此处:

仅仅拥有一个单独列的纯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));
在这里,您明确表示希望以元组的形式加载数据