历史版本23 :Python 算子 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
4.0.29数据转换节点中新增「Python 算子」

1.2 应用场景

  • 在数据开发过程中,对于一些复杂的数据处理(比如使用可视化算子或者 SparkSQL 较难实现的),需要在「数据转换」节点中使用 Python 脚本处理数据。

  • 在数据开发过程中,用户希望通过 FineDataLink 读取文件数据,但 文件输入算子 不支持读取该文件,该场景下可通过 Python 脚本加载文件数据。

1.3 功能简介

数据转换节点中新增「Python 算子」,可调用 Python 脚本进行复杂数据处理。

注:「Python 算子」与「Python脚本」的区别请参见:Python 脚本与 Python 算子区别

2. 使用须知编辑

1)「Python 算子」前面只能接入一个输入算子。

2)「Python 算子」不能放在两个过程性算子中间。

3)python 编辑器只能联想 python 基础语法,不能联想 import 中的方法;python 编辑器没有语法高亮;python编辑器没有语法检测。

4)使用「Python 算子」加载文件时,支持绝对路径/相对路径加载文件。

需注意,默认运行的路径为tomcat\webapps\webroot\WEB-INF\assist\python(该路径用户可自定义,请参见本文 3.3 节内容),根据这个路径去算相对路径。

1694488810803658.png

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 路径:

  • Linux 系统中若能识别python3命令行,FDL 也能识别

  • Windows 若能识别python命令行,FDL 也能识别

自定义说明:

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 表数据。如下图所示:

8.png

4.2 设置 Python 算子

1)拖入 Python 算子,编写脚本,为每一本书生成编码。

注1:「DB表输入」需点击生成。

注2:Windows 中部署的 FDL 版本为 4.0.30 之前时,代码中不能出现双引号;Windows 中部署的 FDL 版本为 4.0.30 及之后时 ,代码中支持出现双引号。

import pandas as pd
# 必须使用 pandas 库
 
input = DB表输入
 
output =  input.assign(书本编码=range(1, len(DB表输入.title) + 1))
# 添加新列并赋值给默认输出变量
# 使用output变量指定当前算子的输出

9.png

2)点击「数据预览」,可看到生成的「书本编码」列。如下图所示:

1693989138472328.png

4.3 输出数据

1)拖入「DB表输出」算子,将数据输出。如下图所示:

11.png

2)点击右上角「保存」按钮。

4.4 效果查看

任务执行成功后,生成的表数据如下图所示:

1693989675947118.png