Hive - как получить производные имена столбцов и использовать их в одном запросе? - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь выполнить следующий запрос:

select [every_column],count(*) from <table> group by [every_column] having count(*) >1

Но имена столбцов должны быть получены в том же запросе.Я полагаю, что столбцы show in будут содержать список имен столбцов, разделенных новой строкой.Но мне нужно использовать его в одном запросе, чтобы получить результат.Ценю любую помощь в этом отношении.

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Вы можете использовать shell sed для поиска newlines(\n) и заменить его на comma(,).

  • . Присвойте имена столбцов, разделенные запятыми, для hive variable, используйтеимя переменной в вашем запросе улья.

Ссылки для sed и набор переменных улья

0 голосов
/ 13 марта 2019

Вы думали об использовании подзапросов или даже CTE?Может быть, это поможет вам найти свой ответ:

select outer.col1,
       outer.col2,
       outer.col3,
       outer.col4,
       outer.col5,
       outer.col6, count(*) as cnt
from (
        select <some logic> as col1,
               <some logic> as col2,
               <some logic> as col3,
               <some logic> as col4,
               <some logic> as col5,
               <some logic> as col6
        from innerTable
)outer
group by outer.col1,
       outer.col2,
       outer.col3,
       outer.col4,
       outer.col5,
       outer.col6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...