使用hive操作符并传递hql文件在airflow中运行hql文件
hive_task = HiveOperator(
task_id='run_hql',
hql='/path/to/your_query.hql',
hive_conn_id='your_hive_connection_id',
hiveconf_jinja_translate=True,
hiveconfs={'table_name': 'your_table_name', 'days': 5},
dag=dag,
)
字符串
和hql内容如下
-- Define parameters
SET hivevar:table_name=YOUR_DEFAULT_TABLE_NAME;
SET hivevar:days_offset=YOUR_DEFAULT_DAYS_OFFSET;
-- Use parameters in the query
SET days={{ macros.dateutil.relativedelta.relativedelta(days=-hivevar:days) | replace(":", "-") }};
ANALYZE TABLE edw_health.${hivevar:table_name} PARTITION(ds = '{{ days }}') COMPUTE STATISTICS;
ANALYZE TABLE edw_health.${hivevar:table_name} PARTITION(ds = '{{ days }}') COMPUTE STATISTICS FOR COLUMNS;
型
获取错误,因为'hiveconf'未定义。
任何一个建议,如果我错过了什么,以及如何读取hql文件中的hive confs变量值
1条答案
按热度按时间sqserrrh1#
您正在Hive脚本中使用
hivevar
命名空间:字符串
但是hiveconfs在
hiveconf
命名空间中作为key=value传递。请参阅hive_operator
使用hiveconf代替hivevar:
型