HIVE - значение приращения при изменении столбца - PullRequest
0 голосов
/ 08 июня 2018

Я просто пытаюсь добавить столбец с уникальным идентификатором для путешествия.У меня есть таблица, которая выглядит примерно так:

Time                id  station     newtrip
2017-11-15 16:45    100 St.George   TRUE
2017-11-15 16:46    100 Bloor       FALSE
2017-11-15 16:47    110 Wellesley   TRUE
2017-11-15 16:48    110 Wellesley   FALSE
2017-11-15 16:49    200 Dundas      TRUE
2017-11-15 16:55    200 College     FALSE
2017-11-15 16:56    200 Union       FALSE
2017-11-15 17:51    200 Union       TRUE
2017-11-15 17:52    200 St.Andrew   FALSE

Все, что я пытаюсь сделать, это увеличивать счетчик каждый раз, когда последний столбец показывает true.Таким образом, результат должен выглядеть следующим образом:

Time                id  station     newtrip journeyID
2017-11-15 16:45    100 St.George   TRUE    1
2017-11-15 16:46    100 Bloor       FALSE   1
2017-11-15 16:47    110 Wellesley   TRUE    2
2017-11-15 16:48    110 Wellesley   FALSE   2
2017-11-15 16:49    200 Dundas      TRUE    3
2017-11-15 16:55    200 College     FALSE   3
2017-11-15 16:56    200 Union       FALSE   3
2017-11-15 17:51    200 Union       TRUE    4
2017-11-15 17:52    200 St.Andrew   FALSE   4

Пару вещей, на которые стоит обратить внимание

  • При использовании оконных аналитических функций я не делаю ни на что.Я хочу, чтобы это охватило всю таблицу (около 30 миллионов строк).
  • Я смог заставить это работать на моей виртуальной машине Hortonworks Ambari, добавив row_counter (rowid) для всей таблицы, а затем выполнивчто-то вроде:

    СУММА (ЕСЛИ (newtrip, 1, 0)) ПЕРЕВЕРНУТЬ (упорядочить по rowid) как travelID

Но при запускеТОЧНО тот же код в кластере в AWS EMR, добавление идентификатора строки, кажется, портит порядок других столбцов, и я получаю испорченные результаты.

Конечно, есть простой способ сделать это?

...