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

ulmd4ohb  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(253)

我正在将一个文件加载到存储中。文件有一列 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);

感谢您的帮助。

fjnneemd

fjnneemd1#

如果输入是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) ;

相关问题