我正在尝试在Pig中编写Python UDF来清理表中的所有列。我见过的Pig UDF的例子都在一个列上工作。
在Hive中,我可以做类似的事情,
INSERT OVERWRITE TABLE <table_name>
SELECT TRANSFORM (
col1, col2, col3
)
USING 'clean.py'
AS (
col1, col2, col3
);
这会立即清除所有列。想知道我是否可以在Pig中制作类似的东西。感谢。
答案 0 :(得分:1)
您可以使用PigStorage()读取整个行而不使用分隔符,并在其上调用UDF。
REGISTER CleanUDF.jar;
DEFINE CleanText com.soc.pig.udf.CleanText;
A = LOAD '/user/rawData.txt' USING PigStorage();
B = FOREACH A GENERATE CleanText($0);
DUMP B;
根据您的分隔符,您可以在UDF中拆分和实现逻辑,您需要清理所有列。