首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将presto与airflow集成

将presto与airflow集成
EN

Stack Overflow用户
提问于 2020-01-14 21:13:15
回答 1查看 288关注 0票数 0

我想把Airflow和presto结合起来。在bash shell上,命令- */opt/presto/bin/presto --server 10.0.0.15:8190 --catalog hive --schema cvm_db --execute "select * from cvm_db.cvm_weekly_rech limit 10"*运行良好,但在python airflow脚本中,它会抛出错误- invalid sythax并突出显示命令。请问做这件事最好的方法是什么?下面是气流脚本。

代码语言:javascript
复制
            import airflow
            from airflow.models import DAG
            from airflow.operators.bash_operator import BashOperator
            from airflow.operators.dummy_operator import DummyOperator
            from datetime import datetime, timedelta, date
            default_args = {
              'owner': 'daasuser',
              'depends_on_past': False,
              'start_date': airflow.utils.dates.days_ago(0),
              'email': ['a.olabamidele@ligadata.com'],
              'email_on_failure': True,
              #'email_on_retry': True,
              'retries': 5,
              'retry_delay': timedelta(minutes = 10),
              #'queue': 'bash_queue',
              #'pool': 'backfill',
              #'priority_weight': 10,
              #'end_date': datetime(2016, 1, 1),
              #'wait_for_downstream': False,
              #'dag': dag,
              #'sla': timedelta(hours = 2),
              #'execution_timeout': timedelta(seconds = 300),
              #'on_failure_callback': some_function,
              #'on_success_callback': some_other_function,
              #'on_retry_callback': another_function,
            }
            dag = DAG(
                'cvm_weekly_datamart',
                default_args=default_args,
                description='To insert records into cvm datamart weekly',
                schedule_interval='0 5 * * 0')
            #date1='/opt/presto/bin/presto --server 10.0.0.15:8190 --catalog hive --schema cvm_db --execute "select * from cvm_db.cvm_weekly_rech limit 10"
            t1 = BashOperator(
                task_id='print_date',
                bash_command=/opt/presto/bin/presto --server 54.242.0.153:8180 --catalog hive --schema cvm_db --execute "select * from cvm_db.cvm_weekly_rech limit 10",
                dag=dag)
            print1='echo "Completed"'
            t2 = BashOperator(
                task_id='print',
                bash_command=print1,
                #retries=1,
                dag=dag)
            t1>>t2
EN

回答 1

Stack Overflow用户

发布于 2020-07-13 16:59:55

命令应该是:

代码语言:javascript
复制
bash_command='/opt/presto/bin/presto --server 54.242.0.153:8180 --catalog hive --schema cvm_db --execute "select * from cvm_db.cvm_weekly_rech limit 10"'

命令应为字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59734503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档