2017-01-12 11 views
0

У меня есть 3 столбца, столбец идентификатора и 2 столбца имени. Иногда 2 столбца имен имеют одинаковые значения, но один - в верхнем регистре в одном столбце и в нижнем регистре в другом. Как удалить их, когда значение одинаковое (или имеют похожие символы), но корпус отличается?Как сравнить два столбца в PIG и удалить любые значения независимо от верхнего/нижнего регистра

Пример:

а = нагрузка TXT файл а = Foreach генерируют идентификатор, имя1, имя2

выходной ток:

id1, james, JAMES 
id2, tom, Tom 
id3, Jim, Bob 
id4, Bill, billy 

ожидается выход: только этот 1 результат ниже

a = сравните имя1 и имя2, и если есть какие-либо похожие символы в имени1, которые также находятся в имени 2, отфильтруйте их

id3, Jim, Bob

Спасибо за любую помощь!

ответ

1

Предполагая, что вы загрузили данные в отношении A, а имена имеют тип chararray.

A = FILTER A BY (LOWER(A.$1) != LOWER(A.$2)) 
DUMP A; 
+0

спасибо, что это сработало! Кстати, что означает $? – Tai

+0

также @amit есть способ отфильтровать аналогичные значения? например, name1 = bill и name2 = billy, и я хочу, чтобы эта запись не была частью моего вывода. так что что-то вроде первых двух букв не может быть одинаковым? Знак $ – Tai

+0

$ может использоваться для ссылки на поля по индексам, где индекс начинается с 0. Что касается вашего второго вопроса, вы можете обратиться к http://pig.apache.org/docs/r0.11.1/basic.html и http : //pig.apache.org/docs/r0.11.1/func.html – Amit

 Смежные вопросы

  • Нет связанных вопросов^_^