BigQueryHook运算子无法识别use_legacy_sql争论

时间:2019-01-08 04:31:46

标签: airflow google-cloud-composer

尝试使用pythonoperator(使用BigQueryHook)运行查询

def CheckIncomingRecords(**context):
    sql = context['templates_dict']['sql']
    logging.info("sql passed is : {}".format(sql))
    bq = BigQueryHook(bigquery_conn_id='bigquery_default', 
use_legacy_sql=False)
    conn = bq.get_conn()
    cursor = conn.cursor()
    results = cursor.execute(sql)
return results

出现以下错误:TypeError: init ()得到了意外的关键字参数'use_legacy_sql'

使用1.9.0-composer。检查了源代码,无法找到为什么不认识文档中提到的观点。请指教

1 个答案:

答案 0 :(得分:2)

您得到的错误是因为在 Airflow 1.9.0 中,BigQueryHook中仅存在两个参数:

源代码:https://github.com/apache/airflow/blob/1.9.0/airflow/contrib/hooks/bigquery_hook.py#L45-L50

float: left;

Airflow 1.9.0 的文档:https://airflow.readthedocs.io/en/1.9.0/integration.html#bigqueryhook

<li>'s已添加到 Airflow 1.10.0 中的BigQueryHook init()中。 Airflow 1.10.0 的文档:https://airflow.readthedocs.io/en/1.10.0/integration.html#bigqueryhook