Я пытаюсь преобразовать ниже заявление улей на Свиньи:Convesion от улья к PigLatin
max(substr(case when url like 'http:%' then '' else url end,1,50))
Мое заявление свинью за выше:
url_group = GROUP data by (uid);
max_substr_url= FOREACH url_group generate SUBSTRING(MAX(((Coalesce(data.url) matches '.*http:%.*') ? '' : Coalesce(data.url))), 0, 49);
Для некоторых из данных, URL-адрес может быть нулевым. Поэтому я написал свиной UDF под названием Coalesce (String), который возвращает пустую строку, если данные являются либо пустыми, либо пустыми. Если данные не являются нулевыми или не пустыми, возвращается строка.
Вышеуказанный свиноматок дает мне много неприятностей и пробовал n разных вариантов/способов, но ничего не работало. У кого-нибудь есть идеи о том, как это реализовать? Пожалуйста, помогите мне.
Заранее спасибо
"много проблем", "ничего не получалось" - быть более конкретным –
Pig использует Java регулярных выражений для 'matches', так'% 'не нужно в' * HTTP:% * '... Кроме того, почему вы поменяли MAX и подстроку свинья? Это должно быть 'MAX (SUBSTRING ...' –
Ну, я попробовал много способов заставить свой оператор Pig работать, но еще не успел. – user3167832