我正在将一个文件加载到PigStorage。该文件有一个列Newvalue
,一个包含逗号的自由文本列。当我指定逗号作为分隔符时,这会给我带来问题。我正在使用以下代码。
inpt = load '/home/cd36630/CRM/1monthSample.txt' USING PigStorage(',')
AS (BusCom:chararray,Operation:chararray,OperationDate:chararray,
ISA:chararray,User:chararray,Field:chararray,Oldvalue:chararray,
Newvalue:chararray,RecordId:chararray);
感谢您的帮助。
如果输入是csv形式,那么您可以使用CSVLoader
加载它。这可能会解决您的问题。
如果这不起作用,那么您可以加载到单个字符数组中,然后编写一个UDF,以尊重Newvalue
中的空格的方式分割总行。例如:
register 'myudfs.py' using jython as myudfs ;
A = LOAD '/home/cd36630/CRM/1monthSample.txt' AS (total:chararray) ;
B = FOREACH A GENERATE myudf.prepare_input(total) ;