【问题标题】:Unable to query using file in Data Proc Hive Operator无法在 Data Proc Hive Operator 中使用文件进行查询
【发布时间】:2019-04-24 17:34:32
【问题描述】:

我无法使用DataProcHiveOperator 中的.sql 文件进行查询。 虽然文档告诉我们可以使用文件进行查询。文档链接Here

直接查询就可以了 这是我的示例代码,可以直接编写查询:

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' ':' '/'

Here也提出了类似的问题

【问题讨论】:

    标签: hive google-cloud-platform airflow google-cloud-dataproc


    【解决方案1】:

    问题是因为你也通过了query='gs://us-central1-bucket/data/sample_hql.sql'

    您应该恰好传递queryqueri_uri 中的1 个。

    您问题中的代码两者都有,因此请删除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)
    

    【讨论】:

    • 是的,没错。 “query_uri”的拼写也写成“queri_uri”。我的错。谢谢@kaxil
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多