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

目录:

1. 概述编辑

1.1 版本

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

1.2 应用场景

在数据开发过程中,对于一些复杂的数据处理(比如使用可视化算子或者 SparkSQL 较难实现的),需要在「数据转换」节点中使用 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,根据这个路径去算相对路径。

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
python.maxMemorySize
python 进程最大内存 byte
python.csvDelimiter传递文件csv列分隔符,默认ascii\x03
python.csvQuote传递文件csv封闭符,默认\x05

若用户希望自定义表格中的设置项,在tomcat\webapps\webroot\WEB-INF\assist下新建 python\config 文件夹,放入 python.properties 文件,不需要重启。

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 算子,编写脚本,为每一本书生成编码。

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

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