场景:

有个小伙伴微信私我咨询是否可以针对kettle定制python插件,确切的说是python3插件。我们团队老师沟通后一致认为kettle的python插件还是很具有挑战性的。

虽然kettle的python插件比较有挑战,但是我相信最终肯定要搞定这款插件。之前的课程中有讲过kettle调用python文件的三种方式,今天我们先来一起学习下使用kettle中的启动一个进程步骤来调用python代码。

 1、设计流程

1)生成记录步骤,主要用来模拟python文件

2)启动一个进程步骤,通过此步骤来调用python文件

3)写日志步骤,记录执行结果

 2、生成记录

1)py3,设置python3的进程启动命令

2)pyFile,设置python文件的路径

3)name,geyan 两个字段,设置pyFile的入参数

 3、启动一个进程

1)进程字段,我这里选择py3

2)勾选Arguments in Fields,表示参数可以在下方进行设置

3)Argument Fields,选择前面设置的三个参数,pyFile,name,geyan

4)输出参数设置

Output Line Delimiter:输出行分隔符,我这里设置为$$

 4、test.py 文件

内容如下:

import sys

def greet(name,geyan):
    print(f"我是: {name}")
    print(f"我的格言: {geyan}")


if __name__ == "__main__":
    if len(sys.argv) > 1:
        name = sys.argv[1]
        geyan = sys.argv[2]
        greet(name,geyan)
    else:
        print("Please provide a name as a command-line argument.")

5、保存&运行

可以正常work,输出结果为我是: Result output = 我是: Java小金刚$$我的格言: 蓬生麻中,不扶而直;白沙在涅,与之俱黑。我们可以通过分隔符$$进行后续处理,或者Result output 输出结构为json,然后通过json input解析也可以。

 done!!!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐