码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Apache Airflow (十二) :PythonOperator


    🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客

     🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。

     🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频


    PythonOperator可以调用Python函数,由于Python基本可以调用任何类型的任务,如果实在找不到合适的Operator,将任务转为Python函数,使用PythonOperator即可。

    关于PythonOperator常用参数如下,更多参数可以查看官网:airflow.operators.python — Airflow Documentation

    1. python_callable(python callable):调用的python函数
    2. op_kwargs(dict):调用python函数对应的 **args 参数,dict格式,使用参照案例。
    3. op_args(list):调用python函数对应的 *args 参数,多个封装到一个tuple中,list格式,使用参照案例。

    PythonOperator调度案例

    1. import random
    2. from datetime import datetime, timedelta
    3. from airflow import DAG
    4. from airflow.operators.python import PythonOperator
    5. # python中 *  关键字参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。
    6. # python中 ** 关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
    7. def print__hello1(*a,**b):
    8.     print(a)
    9.     print(b)
    10.     print("hello airflow1")
    11. # 返回的值只会打印到日志中
    12.     return{"sss1":"xxx1"}
    13. def print__hello2(random_base):
    14.     print(random_base)
    15.     print("hello airflow2")
    16. # 返回的值只会打印到日志中
    17.     return{"sss2":"xxx2"}
    18. default_args = {
    19.     'owner':'maliu',
    20.     'start_date':datetime(2021, 10, 1),
    21.     'retries': 1,  # 失败重试次数
    22.     'retry_delay': timedelta(minutes=5) # 失败重试间隔
    23. }
    24. dag = DAG(
    25.     dag_id = 'execute_pythoncode',
    26.     default_args=default_args,
    27.     schedule_interval=timedelta(minutes=1)
    28. )
    29. first=PythonOperator(
    30.     task_id='first',
    31.     #填写  print__hello1 方法时,不要加上“()”
    32.     python_callable=print__hello1,
    33.     # op_args 对应 print_hello1 方法中的a参数
    34.     op_args=[1,2,3,"hello","world"],
    35.     # op_kwargs 对应 print__hello1 方法中的b参数
    36.     op_kwargs={"id":"1","name":"zs","age":18},
    37.     dag = dag
    38. )
    39. second=PythonOperator(
    40.     task_id='second',
    41.     #填写  print__hello2 方法时,不要加上“()”
    42.     python_callable=print__hello2,
    43.     # random_base 参数对应 print_hello2 方法中参数“random_base”
    44.     op_kwargs={"random_base":random.randint(0,9)},
    45.     dag=dag
    46. )
    47. first >> second

  • 相关阅读:
    Day10配置文件&日志&多线程
    linux控制组: cpuset解析
    Docker 配置阿里云镜像加速器
    利用 Python 浅尝算法分析
    C语言入门基础题:奇偶 ASCII 值判断(C语言版)和ASCII码表,什么是ASCII码,它的特点和应用?
    Docker完整版(一)
    可以免费文字识别app有哪些?有这3款app就能够实现提取文字自由
    【mysql 高级】explain的使用及explain包含字段的含义
    Latice CPLD jed转VME文件简介
    【BLE】蓝牙抓包器 Ellisys 使用说明
  • 原文地址:https://blog.csdn.net/qq_32020645/article/details/134504482
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号