Как оптимизировать код, чтобы выбрать строки, которые я хочу извлечь в Had oop Hue, и объединить текст из столбца? - PullRequest
1 голос
/ 14 июля 2020

Я работаю с Had oop на Hue, и есть ограничение в 100000 строк, которые можно загрузить. Я хотел бы выбрать строки, которые я буду загружать, чтобы загрузить всю базу. Пример: строка 1 до 100000, от 100001 до 200000 ...

Проблема 1: я использую код, но для получения результатов требуется слишком много времени, и время соединения на их сервере заканчивается, i хотел бы знать, как я могу оптимизировать этот код. Я новичок в SQL.

Проблема 2: внизу в одном из столбцов находится текстовое поле, только текст разделен на строки. Пример: строка 1 - id1 - слово 1, строка 2 - id 1 - слово 2, строка 3 - id 1 - слово 3. И чтобы уменьшить количество строк, я пытаюсь объединить слова по id: строка 1 - id 1 - слово 1 + слово 2 + слово 3. Однако код, который я использую, не работает, потому что он говорит, что у меня нет доступа к базе, удалив функцию сцепления текста, я могу получить доступ к базе.

Для задачи 1 я использую этот код:

select *
from (select *, row_number() over (partition by ID order by ID) as row_num from tab) user_table
where row_num between 1 and 100000

Для задачи 2 я использую это:

select *, concat_ws ('', collect_list (WORD)) as words
from tab
where ORG = 'card'
group by ID

И я хотел бы объединить оба, но ни один не работает должным образом:

select *, concat_ws ('', collect_list (WORD)) as words
from (select *, row_number() over (partition by ID order by ID) as row_num from tab) user_table
where row_num between 1 and 100000 and ORG = 'card'
group by ID
...