2011-11-18 49 views
0

我正在加载文件到PIG。在使用STRSPLIT(doc,',')分割记录之后,我想使用TRIM()清理数据以消除多余的空白。我似乎无法弄清楚如何在记录中的每个单词上使用TRIM()。例如:使用TRIM()在个人记录

((car , truck, jeep , honk)). 

的架构是这样的:tokens:(t:(w:chararray))
我已经试过

clean_docs = FOREACH tokenized_docs GENERATE TRIM(tokens.$0.w) AS tokens:(t:(w:chararray)); 

等诸多变化,似乎并不能使它发挥作用。 请帮忙! 谢谢!

回答

0

现在我不认为有这样做的内置解决方案,你需要将所有东西弄平,或者做一个Eval UDF,它可以获取字符串列表并修剪每个元素(更干净的解决方案)。

但是,对整个字符串做一个TRIM,然后使用一个正则表达式来切割空间也可能工作?
例如

STRSPLIT(文件, '*,*')