Невозможно выполнить запрос с помощью файла в Data Proc Hive Operator - PullRequest
0 голосов
/ 22 ноября 2018

Я не могу запросить файл .sql в DataProcHiveOperator.Хотя документация говорит, что мы можем запросить, используя файл.Ссылка на документацию Здесь

Работает нормально, когда я задаю запрос напрямую. Вот мой пример кода, который отлично работает с непосредственным написанием запроса:

HiveInsertingTable = DataProcHiveOperator(task_id='HiveInsertingTable',
gcp_conn_id='google_cloud_default', 
query='CREATE TABLE TABLE_NAME(NAME STRING);',
cluster_name='cluster-name',
region='us-central1',
dag=dag)

Запросс файлом:

HiveInsertingTable = DataProcHiveOperator(task_id='HiveInsertingTable',
gcp_conn_id='google_cloud_default', 
query='gs://us-central1-bucket/data/sample_hql.sql',
query_uri="gs://us-central1-bucket/data/sample_hql.sql
cluster_name='cluster-name',
region='us-central1',
dag=dag)

Ошибка в сценарии sample_hql.sql отсутствует.
Он считывает местоположение файла как запрос и выдает мне сообщение об ошибке:

Query: 'gs://bucketpath/filename.q'
Error occuring - cannot recognize input near 'gs' ':' '/'

Подобная проблема также была поднята Здесь

1 Ответ

0 голосов
/ 22 ноября 2018

Проблема в том, что вы также прошли query='gs://us-central1-bucket/data/sample_hql.sql'.

Вы должны передать ровно 1 из query или queri_uri.

Код в вашем вопросе содержит обаих, поэтому удалите query или используйте следующий код:

HiveInsertingTable = DataProcHiveOperator(task_id='HiveInsertingTable',
    gcp_conn_id='google_cloud_default', 
    query_uri="gs://us-central1-bucket/data/sample_hql.sql",
    cluster_name='cluster-name',
    region='us-central1',
    dag=dag)
...