在自由文本列的拉丁Pig中使用逗号作为分隔符



我正在将一个文件加载到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) ;

最新更新