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轻松解决),如下图所示:

kettle从入门到精通 第六十三课 ETL之kettle kettle调用python脚本的两种方法的更多相关文章
- Spring Boot从入门到精通(六)集成Redis实现缓存机制
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...
- Hibernate从入门到精通(六)一对一双向关联映射
在上次的博文Hibernate从入门到精通(五)一对一单向关联映射中我们讲解了一下一对一单向关联映射,这次我们继续讲解一下与之对应的一对一双向关联映射. 一对一双向关联 与一对一单向关联映射所不同的的 ...
- CoreData 从入门到精通(六)模型版本和数据迁移
前面几篇文章中讲的所有内容,都是在同一个模型版本上进行操作的.但在真实开发中,基本上不会一直停留在一个版本上,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模 ...
- go语言20小时从入门到精通(六、工程管理)
在实际的开发工作中,直接调用编译器进行编译和链接的场景是少而又少,因为在工程中不会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系.如果这样一个文件一个文件逐步编译,那不亚于一场灾难. Go语 ...
- Simulink仿真入门到精通(六) Simulink模型保存为图片
6.1 截图保存方式 Ctrl+Alt+A 6.2 拷贝试图方式 Edit→Copy Current View to Clipboard 6.3 saveas函数 用于保存figure或者simuli ...
- Docker从入门到精通(六)——容器通信
想要变成 Docker 的高阶玩家,搞懂 Docker 的容器通信是必不可少的. 1.需求 通常一个 Web 项目上线,我们会把开发完成的服务部署在Tomcat 服务器里面,然后需要的持久化数据会存放 ...
- kettle从入门到精通 第十一课 kettle javascript 解析json数组
1.json步骤虽然可以解析json数组,但是不够灵活.通过javascript步骤来解析json数组比较灵活,且可以按照需要组装数据流转到下个步骤. 1)步骤名称:可以自定义 2)Transform ...
- 【JavaScript从入门到精通】第四课初探JavaScript魅力-04
第四课初探JavaScript魅力-04 style与className 之前我们已经讲过,style用于在JS里控制元素的样式,通过style可以选中元素的各种css属性.此外,我们也提到过,JS用 ...
- 【JavaScript从入门到精通】第三课 初探JavaScript魅力-03
第三课 初探JavaScript魅力-03 函数传参 上节课的时候我们已经讲了什么是函数,实际上,函数在功能上就类似于css的class一样,将一段代码包裹起来使用.为了让函数的功能更加的丰富和实用, ...
- python六十三课——高阶函数之sorted
演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...
随机推荐
- AGC066 题解
题解:AT_agc066_a [AGC066A] Adjacent Difference 笑点解析:没有必要将总成本最小化. 我们将格子间隔的黑白染色(显然有两种染色方法),对于黑点我们要求它是奇数倍 ...
- 力扣26(java&python)-删除有序数组中的重复项(简单)
题目: 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.元素的 相对顺序 应该保持 一致 . 由于在某些语言中不能改变数组的长 ...
- 1.css的初认识
1.什么是CSS? Cascading Style Sheet 层叠级联样式表 CSS:表现层(美化网页) 字体.颜色.边距.高度.宽度.背景图片.网页定位.网页浮动.... 2.CSS发展史 CSS ...
- 力扣125(java)-验证回文串(简单)
题目: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A man, a plan ...
- 阿里云 ACK One 多集群管理全面升级:多集群服务、多集群监控、两地三中心应用容灾
简介: 本文介绍了 ACK One 近期发布的 3 个主要特性,覆盖了多集群管理的 3 个主要场景,跨集群服务发现与访问.多集群全局监控.应用容灾.除多集群管理外,ACK One 更是支持连接并管理任 ...
- 如何迁移 Flink 任务到实时计算
简介: 本文由阿里巴巴技术专家景丽宁(砚田)分享,主要介绍如何迁移Flink任务到实时计算 Flink 中来. 通常用户在线下主要使用 Flink run,这会造成一些问题,比如:同一个配置因版本而变 ...
- 让微服务开源更普惠,阿里云微服务引擎MSE全球开服
简介:MSE 于2020年10月在国内开启商业化服务,目前已吸引近万客户使用,用于在云上更低成本构建.更稳定运行微服务架构.此次,MSE 向阿里云国际站开放服务,旨在帮助更多客户享受到更加普惠的微服 ...
- Arthas 使用的各类方式
简介: Arthas 是阿里巴巴开源的 Java 诊断工具.让我们能够在线排查项目发生的问题.除了知道它的存在之外,我们也需要知道我们如何去安装使用它,以便于提高我们日常开发解决 BUG 的效率. A ...
- To Be Vegetable
求满足下述条件的 \(n\) 阶排列 \(a\) 的数目:对每个 \(i\),要么 \(a_i-i\le a_j-j+d\) 对所有 \(j\gt i\) 成立,要么 \(a_i\ge a_j\) 对 ...
- Linux基础-02:Linux目录操作命令
Linux中目前可以识别的命令有上万条,如果没有分类,那么学习起来一定痛苦不堪. 所以我们把命令分门别类,主要是为了方便学习和记忆. 下面我们先来学习最为常用的和目录相关的操作命令 最近无意间获得一份 ...