kettle从入门到精通 第104课 ETL之kettle kettle调用python的四种方法
摘要:本文介绍了在Kettle中使用"启动一个进程"步骤调用Python3代码的方法。通过生成记录步骤模拟Python文件、设置进程参数,并配合test.py脚本实现数据交互。重点讲解了参数传递和输出格式设置,最终成功输出执行结果。该方法为Kettle与Python3集成提供了一种可行的解决方案,为后续开发Python插件打下基础。(149字)
场景:
有个小伙伴微信私我咨询是否可以针对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!!!
更多推荐
所有评论(0)