反馈已提交

网络繁忙

Python 算子

  • 文档创建者:Wendy123456
  • 历史版本:32
  • 最近更新:Wendy123456 于 2024-04-02
  • 1. 概述

    1.1 版本

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

    1.2 应用场景

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

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

    1.3 功能简介

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

    注:「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 的用法。

    3. 前提条件

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

    3.1 确定 Python 版本

    使用 Python 3.X版本。

    3.2 安装必备包(必做)

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

    Linux & Windwos 环境中:

    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工作目录,默认为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 及之后时 ,代码中支持出现双引号。

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

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

    1693989675947118.png





    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持