无法使用data proc hive operator中的文件进行查询

t98cgbkg  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(517)

我无法使用中的.sql文件进行查询 DataProcHiveOperator . 尽管文档告诉我们可以使用文件进行查询。此处是文档的链接
当我直接给出查询时效果很好这是我的示例代码,可以直接编写查询:

  1. HiveInsertingTable = DataProcHiveOperator(task_id='HiveInsertingTable',
  2. gcp_conn_id='google_cloud_default',
  3. query='CREATE TABLE TABLE_NAME(NAME STRING);',
  4. cluster_name='cluster-name',
  5. region='us-central1',
  6. dag=dag)

使用文件查询:

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

示例\u hql.sql脚本没有错误。
它将文件位置作为查询读取,并将错误作为:

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

这里也提出了类似的问题

ndasle7k

ndasle7k1#

问题是因为你已经通过了 query='gs://us-central1-bucket/data/sample_hql.sql' 也。
你应该正好通过一个 query 或者 queri_uri .
问题中的代码同时包含了这两个属性,所以请删除它们 query 或使用以下代码:

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

相关问题