我无法将数据作为多个元组加载,我不确定我在做什么错误,请指教。
data.txt
vineet 1 pass Govt
hisham 2 pass Prvt
raj 3 fail Prvt
我想将它们加载为2次。
A = LOAD 'data.txt' USING PigStorage('\t') AS (T1:tuple(name:bytearray, no:int), T2:tuple(result:chararray, school:chararray));
OR
A = LOAD 'data.txt' USING PigStorage('\t') AS (T1:(name:bytearray, no:int), T2:(result:chararray, school:chararray));
转储A; 以下数据以新行的形式显示,我不知道为什么我无法从data.txt读取实际数据。
(,)
(,)
(,)
答案 0 :(得分:1)
由于输入数据未存储为元组,因此我们无法直接将其读入元组。
一种可行的方法是读取数据,然后形成一个包含必填字段的元组。
猪脚本:
A = LOAD 'a.csv' USING PigStorage('\t') AS (name:chararray,no:int,result:chararray,school:chararray);
B = FOREACH A GENERATE (name,no) AS T1:tuple(name:chararray, no:int), (result,school) AS T2:tuple(result:chararray, school:chararray);
DUMP B;
输入:a.csv
vineet 1 pass Govt
hisham 2 pass Prvt
raj 3 fail Prvt
输出:DUMP B:
((vineet,1),(pass,Govt))
((hisham,2),(pass,Prvt))
((raj,3),(fail,Prvt))
输出:DESCRIBE B:
B: {T1: (name: chararray,no: int),T2: (result: chararray,school: chararray)}