1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.29 | 「数据转换」节点中新增「Python 算子」 |
1.2 应用场景
在数据开发过程中,对于一些复杂的数据处理(比如使用可视化算子或者 SparkSQL 较难实现的),需要在「数据转换」节点中使用 Python 脚本处理数据。
在数据开发过程中,用户希望通过 FineDataLink 读取文件数据,但 文件输入算子 不支持读取该文件,该场景下可通过 Python 脚本加载文件数据。
1.3 功能简介
「数据转换」节点中新增「Python 算子」,可调用 Python 脚本进行复杂数据处理。
2. 使用须知编辑
1)「Python 算子」前面只能接入一个输入算子。
2)「Python 算子」不能放在两个过程性算子中间。
3)python 编辑器只能联想 python 基础语法,不能联想 import 中的方法;python 编辑器没有语法高亮;python编辑器没有语法检测。
4)使用「Python 算子」加载文件时,支持绝对路径/相对路径加载文件。
需注意,默认运行的路径为tomcat\webapps\webroot\WEB-INF\assist\python(该路径用户可自定义,请参见本文 3.3 节内容),根据这个路径去算相对路径。
5)可以使用「Python 算子」导入自定义函数:
支持导入 python 运行环境下安装的第三方模块。
支持导入webroot/WEB-INF/assist/python/resources/下自定义的模块。
3. 前提条件编辑
使用「Python 算子」,需要准备 Python 环境。
3.1 确定 Python 版本
使用 Python 3.X版本。
3.2 安装必备包(必做)
注:用户需根据实际环境修改下方语句。
Linux & Windwos 环境中:
1)安装 pandas
pip3 install pandas
2)安装 datetime
pip3 install datetime
3.3 添加 python.properties 文件(选做)
python.properties 文件中可自定义内容:
设置项 | 说明 |
---|---|
python.workdir | 工作目录,默认为assist/python |
python.cmd | 执行脚本,默认环境变量windows-python、linux-python3 默认情况下: 会使用环境变量中的 Python,不需要用户额外配置 Python 路径:
自定义说明: 1)Linux 示例 python.cmd=/home/python/bin/python3 2)Windows 示例 python.cmd=E:\\Python3x\\python.exe 注:Windows 中路径为双反斜杠 \\ 。 |
python.concurrency | python 线程并发数,默认 5 |
python.timeout | python 程序超时时间,单位为s,默认1800s |
若用户希望自定义表格中的设置项,在tomcat\webapps\webroot\WEB-INF\assist下新建 python\config 文件夹,放入 python.properties 文件(修改 python.properties 文件后,需要重启工程,可做完本文 3.4 节操作后,再重启工程)。
python.properties 文件(需根据实际情况修改):文件示例.zip
3.4 修改 finedb 配置项(必做)
找到 FineDB 数据库中的 fine_conf_entity 表,新增配置项 PythonConfig.enable ,值为 true 。修改方法请参见:手动修改fine_conf_entity;新增配置项后,需重启工程。
4. 示例编辑
本章示例:取出 book 表中数据,使用 Python 脚本为每一本书生成编码。
4.1 取出 book 表数据
1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。
2)拖入「DB表输入」算子,取出 book 表数据。如下图所示:
4.2 设置 Python 算子
1)拖入 Python 算子,编写脚本,为每一本书生成编码。
注1:「DB表输入」需点击生成。
注2:Windows 部署的工程中,代码中不能出现双引号。
import pandas as pd
# 必须使用 pandas 库
input = DB表输入
output = input.assign(书本编码=range(1, len(DB表输入.title) + 1))
# 添加新列并赋值给默认输出变量
# 使用output变量指定当前算子的输出
2)点击「数据预览」,可看到生成的「书本编码」列。如下图所示:
4.3 输出数据
1)拖入「DB表输出」算子,将数据输出。如下图所示:
2)点击右上角「保存」按钮。
4.4 效果查看
任务执行成功后,生成的表数据如下图所示: