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

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
4.0.29数据转换节点中新增「Python 算子」
4.1.6.2加载文件的默认路径从%fdl_home%\webapps\webroot\WEB-INF\assist\python迁移到%fdl_home%\webapps\webroot\WEB-INF\plugin\fdl_python

1.2 应用场景

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

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

1.3 功能简介

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

21.png

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

demo任务详情参见:https://demo.finedatalink.com/  「数据转换-Python 算子」

2. 使用须知编辑

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

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

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

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

需注意,4.1.6.2 之前版本默认运行的路径为%fdl_honme%\webapps\webroot\WEB-INF\assist\python;4.1.6.2 及之后版本,默认运行的路径为%fdl_honme%\webapps\webroot\WEB-INF\plugin\fdl_python

(该路径用户可自定义,请参见本文 3.3 节内容),根据这个路径去算相对路径。

1694488810803658.png

5)可以使用「Python 算子」导入自定义函数:

  • 支持导入 python 运行环境下安装的第三方模块。

  • 支持导入webroot/WEB-INF/assist/python/resources/下自定义的模块。

6)「Python 算子」的输入源,在 Python 代码中是以 Python 的 pandas 库中的 dataframe 数据结构存在。用户若想对数据源做处理,可参考 dataframe 的用法。

7)numpy2.0版本(2024年6月16号发布)不再支持np.float,无法调整类型。

3. 前提条件编辑

使用「Python 算子」,需要准备 Python 环境。

3.1 确定 Python 版本

使用 Python 3.X版本。

3.2 安装必备包(必做)

注:用户需根据实际环境修改下方语句。

Linux & Windows 环境中:

1)安装 pandas

pip3 install pandas

2)安装 datetime

pip3 install datetime

注意点:

pip 默认的资源站为国外站,在国内,使用上述语句可能会下载较慢或报错,可在安装时指定 pip 源:

示例语句:

pip3 install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

国内常用的镜像源:

阿里云:https://mirrors.aliyun.com/pypi/simple
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
豆瓣:https://pypi.douban.com/simple
清华:https://pypi.tuna.tsinghua.edu.cn/simple/

3.3 添加 python.properties 文件(选做)

python.properties 文件中可自定义内容

设置项
说明
python.workdir

工作目录

  • 4.1.6.2 之前版本,默认为:%fdl_home%\webapps\webroot\WEB-INF\assist\python

  • 4.1.6.2 及之后版本,默认为%fdl_home%\webapps\webroot\WEB-INF\plugin\fdl_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 及之后时 ,代码中支持出现双引号。

注3:若引用参数,参数引用格式为:${参数名}

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 效果查看

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