Как изменить конкретное значение столбца для определенного количества строк в Pig latin

#apache-pig

#apache-pig

Вопрос:

У меня есть файл pig, скажем, с 10000 строками. Есть ли какой-нибудь быстрый способ, с помощью которого я могу изменить значение определенного столбца, скажем, для первых 1000 строк?

Ответ №1:

Поскольку некоторая информация отсутствует, я сделаю несколько предположений, а затем предложу решение.

  • под «первыми 1000 строками» вы подразумеваете, что вы можете упорядочить их записи, используя некоторый столбец
  • вы хотите изменить значение столбца $1 в первых 1000 записях при упорядочении по столбцу $2

Следующий фрагмент кода сделает то, что вы просили:

     a = load ...
    b = rank a by $2;
    c = foreach b generate $0, (rank_a<1000?$1:3*$1), $2..;
 

Ответ №2:

Для достижения эффекта используйте операции For Each и Limit.