2013-12-12 39 views
0

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

任何帮助表示赞赏。

回答

1

如果输入的是CSV格式,那么你可以使用CSVLoader加载它。这可能会解决您的问题。

如果这不起作用,那么你可以加载到单个chararray中,然后编写一个UDF来拆分总行,以便尊重Newvalue中的空格。 EG:

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) ; 
+0

非常感谢。它正在使用CSVloader – Charudatta