изменение фреймворка - скрипт оболочки в искровой код - PullRequest
0 голосов
/ 24 мая 2019

У меня есть скрипт оболочки, который подключается к beeline и собирает данные из 100 таблиц и сбрасывает эти данные в одну таблицу. Здесь мой сценарий оболочки попадает в билайн 5 раз, поэтому для завершения процесса требуется слишком много времени, поэтому мне посоветовали использовать spark shell вместо сценария оболочки

Я пытался получить данные с помощью сценария оболочки, но это занимает около 5 часов, поэтому мне было предложено получить данные с использованием искры. Этот код должен запускаться ежедневно.

Я использовал следующий код

beeline -u " connection details " -- show header =false -- outputformat=tsv2 - hivevar dbname=${dbname} - e "show partition ${table_name}; > {tableProcess}.tmp


for line in `cat${tableprocess}.tmp| tail -1( for getting latest partition)
 do 

part_year = I have found a way to extract the year

part_month= same
part_day = same

затем, после всего этого, я использовал выше для сбора данных из 100 таблиц одну за другой, используя beeline.

beeline -u "connection details" select count(*) from {table_process} where year= part_year and  month=part_month and day=part_day;> {tableProcess}.count

Я использовал beeline -u в 4 раза больше, чтобы получать другие данные, используя даты раздела

После получения различной информации

I have used printf"${dbname},${table_name},{tableProcess}.count and more >> metadata.txt.

этот текстовый файл хранится в месте размещения, и на его основе я создаю внешнюю таблицу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...