dataproc配置单元运算符未运行存储在存储桶中的hql文件

sg24os4d  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(419)

我正在尝试使用airflow脚本运行云存储中的hql文件,我们可以通过两个参数将路径传递给dataprochiveoperator:
query:'gs://bucketpath/filename.q' Error occuring - cannot recognize input near 'gs' ':' '/' 查询uri:'gs://bucketpath/filename.q' Error occuring: PendingDeprecationWarning: Invalid arguments were passed to DataProcHiveOperator. Support for passing such arguments will be dropped in Airflow 2.0. Invalid arguments were: *args: ()**kwargs: {'query_uri': 'gs://poonamp_pcloud/hive_file1.q' 使用query param,我成功地运行了配置单元查询( select * from table )
有没有办法通过dataprochiveoperator运行存储在云存储桶中的hql文件?

rkttyhzu

rkttyhzu1#

query_uri 确实是从云存储运行hql文件的正确参数。然而,它只是被添加到 DataProcHiveOperator 在https://github.com/apache/incubator-airflow/pull/2402. 根据您收到的警告消息,我认为您运行的代码不支持该参数。此更改不在最新版本(1.8.2)中,因此您需要等待另一个版本或从主分支获取它。

1aaf6o9v

1aaf6o9v2#

那是因为你两者都在用 query 以及 query_uri .
如果使用文件进行查询,则必须使用 query_uri 以及 query = None 或者可以忽略编写查询。
如果您正在使用 inline query 那你得用 query .
下面是一个通过文件进行查询的示例。

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

相关问题