历史版本4 :Python 算子 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

1.1 版本

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

1.2 应用场景

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

1.3 功能简介

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

2. 前提条件编辑

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

2.1 确定 Python 版本

2.1.1 支持的 Python 版本

Python3.6 及以上版本。

2.1.2 注意事项(必看)

需注意:

1)例如 Python 安装在/usr/local/python3中,site-packages 目录需要在这个目录下。如下图所示:

/usr/local/python3 下存在 site-packages 目录。

find /usr/local/python3 -type d -name "site-packages"

1693981261968511.png

需要记住 site-packages 所在的路径,后面步骤中需要用到。

2)若 Python 安装在 Linux 中,FineDataLink 会检测安装目录下是否会存在bin、include、lib文件夹,若不存在,在「Python 算子」中预览或运行时会报错。

1693982067178199.png

若 Python 安装在 Windows 中,FineDataLink 会检测安装目录下是否会存在 python.exe、include、Lib,若不存在,在「Python 算子」中预览或运行时会报错。

1693982172647754.png

2.2 安装必备包

2.1.1 Linux 系统

假设 Python 安装在/usr/local/python3中,site-packages 在/usr/local/python3/lib/python3.7下。

将下方语句中的/usr/local/python3/lib/python3.7/site-packages替换为用户实际的 site-packages 路径即可。

1)安装 jep

pip3 install --target=/usr/local/python3/lib/python3.7/site-packages/ jep

2)安装 pandas

pip3 install --target=/usr/local/python3/lib/python3.7/site-packages/ pandas

3)安装 datetime

pip3 install --target=/usr/local/python3/lib/python3.7/site-packages/ datetime

4)安装 resource

pip3 install --target=/usr/local/python3/lib/python3.7/site-packages/ resource

2.1.2 Windows 

假设 Python 可执行文件在 E:\Python3x\python.exe ,site-packages 在 E:\Python3x\Lib\site-packages 下。

1)安装 jep

pip3 install --target=E:\Python3x\Lib\site-packages\ jep

2)安装 pandas

pip3 install --target=E:\Python3x\Lib\site-packages\ pandas

3)安装 datetime

pip3 install --target=E:\Python3x\Lib\site-packages\ datetime

注:Windows 系统不用安装 resource 模块,但是 resource 模块是用来限制 python 占用内存的,所以会有宕机风险。

2.3 FineDataLink 配置 Python 路径

tomcat\webapps\webroot\WEB-INF\assist下新建python\config文件夹,放入python.properties文件,python.properties文件中修改 python.home 的值,为 Python 可执行文件路径。

python.properties 文件:文件示例.zip

1)Linux 示例

python.home=/usr/local/python3

2)Windows 示例

python.home=E:\\Python3x

注:Windows 中路径为双反斜杠 \\ 。

3. 示例编辑

本章示例:取出 book 表中数据,使用 Python 脚本为每一本书生成编码。

3.1 取出 book 表数据

1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。

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

8.png

3.2 设置 Python 算子

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

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

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

9.png

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

1693989138472328.png

3.3 输出数据

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

11.png

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

3.4 效果查看

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

1693989675947118.png