Автоматизация в 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)