kettle从入门到精通 第六十三课 ETL之kettle kettle调用python脚本的两种方法

kettle中不能直接调用python脚本,可以通过shell脚本和http进行调用pyton服务。

一、shell脚本调用python脚本

1、下面是一段简单的无参python脚本

import os

def main():
    # 在这里编写Python脚本的主要逻辑
    print("Hello, this is a Python script called by shell!")

if __name__ == "__main__":
    main()

2、通过shell脚本调用。

 shell脚本

cd D:\king\kettle-demo
py test.py

 3、将步骤【Shell】拉入画布,步骤内直接编写shell脚本或者调用shell文件进行调用python脚本,如下图所示:

 4、采用直接插入shell脚本的方式调用python脚本,如下图所示:

 5、选项卡脚本文本框内直接填写shell脚本,如下图所示:

6、下面是一段简单的带参python脚本

# 文件名:script_with_args.py

import sys

def main():
    if len(sys.argv) < 2:
        print("Usage: python script_with_args.py <arg1>")
        return
    
    arg1 = sys.argv[1]
    print(f"Argument passed from shell: {arg1}")

if __name__ == "__main__":
    main()

7、采用py test1.py java命令将参数java传递给python脚本,如下图所示:

 8、采用调用shell文件(rundemo.bat或者rundemo.sh)方式进而调用python脚本,如下图所示:

最下面的参数可以设置传递给python脚本参数,如设置V1参数。

 

9、采用调用shell文件(rundemo.bat或者rundemo.sh)方式进而调用python脚本,如下图所示:

也可以上一步骤的结果作为参数传递给python脚本。

 10、转换中设置一个参数V1为java,然后将java字符串传递给python脚本,如下图所示:

 二、http方式调用pyton服务

此处是将python脚本暴露http服务接口,然后在kettle中使用http步骤进行调用。这里不在详细介绍,可以参考之前的http调用文章。至于python脚本如何暴露http服务(使用Flask轻松解决),如下图所示:

 

posted @ 2024-05-25 10:59  慕容尘轩  阅读(267)  评论(0编辑  收藏  举报