将 Pig UDF 应用于每一列
Apply a Pig UDF to every column
我正在尝试在 Pig 中编写一个 Python UDF 来清理 table 中的所有列。我见过的 Pig UDF 示例都在单个列上工作。
在 Hive 中,我可以做类似的事情,
INSERT OVERWRITE TABLE <table_name>
SELECT TRANSFORM (
col1, col2, col3
)
USING 'clean.py'
AS (
col1, col2, col3
);
这会一次性清除所有列。想知道我是否可以在 Pig 中制作类似的东西。谢谢
您可以使用 PigStorage() 读取没有分隔符的整行并调用 UDF。
REGISTER CleanUDF.jar;
DEFINE CleanText com.soc.pig.udf.CleanText;
A = LOAD '/user/rawData.txt' USING PigStorage();
B = FOREACH A GENERATE CleanText([=10=]);
DUMP B;
根据您的分隔符,您可以在 UDF 内拆分和实现您的逻辑,您需要清理所有列。
我正在尝试在 Pig 中编写一个 Python UDF 来清理 table 中的所有列。我见过的 Pig UDF 示例都在单个列上工作。
在 Hive 中,我可以做类似的事情,
INSERT OVERWRITE TABLE <table_name>
SELECT TRANSFORM (
col1, col2, col3
)
USING 'clean.py'
AS (
col1, col2, col3
);
这会一次性清除所有列。想知道我是否可以在 Pig 中制作类似的东西。谢谢
您可以使用 PigStorage() 读取没有分隔符的整行并调用 UDF。
REGISTER CleanUDF.jar;
DEFINE CleanText com.soc.pig.udf.CleanText;
A = LOAD '/user/rawData.txt' USING PigStorage();
B = FOREACH A GENERATE CleanText([=10=]);
DUMP B;
根据您的分隔符,您可以在 UDF 内拆分和实现您的逻辑,您需要清理所有列。