Оператор BigQueryHook не распознает аргумент use_legacy_sql - PullRequest
0 голосов
/ 08 января 2019

Попытка выполнить запрос с помощью 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 голосов
/ 09 января 2019

Вы получаете ошибку, потому что в Airflow 1.9.0 в BigQueryHook есть только 2 параметра:

Исходный код: https://github.com/apache/airflow/blob/1.9.0/airflow/contrib/hooks/bigquery_hook.py#L45-L50

def __init__(self,
             bigquery_conn_id='bigquery_default',
             delegate_to=None):
    super(BigQueryHook, self).__init__(
        conn_id=bigquery_conn_id,
        delegate_to=delegate_to)

Документы для Воздушный поток 1.9.0 : https://airflow.readthedocs.io/en/1.9.0/integration.html#bigqueryhook

use_legacy_sql был добавлен в BigQueryHook init () в Воздушный поток 1.10.0 . Документы для Воздушный поток 1.10.0 : https://airflow.readthedocs.io/en/1.10.0/integration.html#bigqueryhook

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