Автоматизация в python через pyhive

Коллеги, день добрый

Хочу автоматизировать процесс создания ключей который сейчас делается вручную в sql через hue, но слишком мало информации по pyhive. Сразу прошу прощения за криворукость:

from pyhive import hive
import pandas as pd

a = 0.05 
con = hive.Connection(host="host", username="username",auth=None)
params = {
    'source table': 'test_table',
   'number_adhoc': 'analytics_test',
}
con.cursor().execute('''INSERT INTO sendbox.mac_tag PARTITION (tag_name) 
select distinct lcase(regexp_replace(mac,':','-')), concat('R',cast(abs(cast(hash({{number_adhoc}}) as bigint)) as varchar(100)))
from {{source table}}
where length(regexp_replace(mac,':','-'))=17; ''')

df = pd.DataFrame()
df = pd.read_sql('''
                    select concat('R',cast(abs(cast(hash({{number_adhoc}}) as bigint)) as varchar(100))),' : {{number_adhoc}}'
                ''',con)
df

При этом, ключ должен выводиться после создания. Заранее благодарен за любую полезную информацию.


Ответы (1 шт):

Автор решения: ave_iam

Нашел решение, вдруг кому то пригодится:

sourcetable = ['sendbox.vd_adhoc_test','sendbox.vd_adhoc_test']
adhoc = ['analytics_adhoc_test','analytics_adhoc_test1']
lst = list(zip(sourcetable, adhoc))
for arg in range(0, len(lst)):
    query= """INSERT INTO sendbox.mac_tag PARTITION (tag_name) 
select distinct lcase(regexp_replace(mac,':','-')), 
concat('R',cast(abs(cast(hash('{}') as bigint)) as varchar(100)))
from {}
where length(regexp_replace(mac,':','-'))=17""".format(lst[arg][1], 
lst[arg][0])
    cursor.execute(query)
    df = pd.DataFrame()
    df = pd.read_sql('''
                    select concat('R',cast(abs(cast(hash('{}') as 
bigint)) as varchar(100))),' : {}'
                '''.format(lst[arg][1], lst[arg][1]),connection)
    print(df)
→ Ссылка