используя TRIM () в PIG для отдельных записей - PullRequest
0 голосов
/ 19 ноября 2011

Я загружаю файл в PIG.После разделения записей с помощью STRSPLIT(doc,',') я бы хотел очистить данные с помощью 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));

И многие другие варианты, и, кажется, не могу заставить его работать.Пожалуйста помоги!Спасибо!

1 Ответ

0 голосов
/ 21 ноября 2011

Сейчас я не думаю, что для этого есть встроенное решение, и вам нужно либо сгладить все, либо создать Eval UDF, который принимает список строк и обрезать каждый элемент (более чистое решение).

Тем не менее, выполнение TRIM для всей строки с использованием регулярного выражения, которое также сокращает пробелы?
например

STRSPLIT (doc, '*, *')

...