Spark SQL算子

  • Last update:  2022-06-28
  • 1. 概述

    1.1 版本

    FineBI 版本功能变更
    6.0-

    1.2 应用场景

    面对文件数据源、RestAPI数据源等非关系型数据的加工处理,我们往往需要将对应数据抽取到数据库后,再利用sql进行加工处理,导致目标数据库产生冗余数据;

    Sparksql 算子可实现在 FDL 产品内便完成对各类数据源的加工处理,包括左右关联、上下关联、分组汇总、排序等;

    同时在数据转换可视化算子不够丰富时,可使用 Sparksql 算子应对各类数据处理场景。

    1.3 功能简介

    通过使用 Spark SQL 算子,用户可以获取上游输出的数据,使用 Spark SQL 对其进行查询和处理,并输出给下游。

    注1:Spark SQL 兼容通用 SQL 。

    注2:Spark SQL 常用语法及介绍请参见:Spark SQL语法

    2. 功能介绍

    「数据转换」节点新增算子「Spark SQL」,可覆盖更多数据转换场景。如下图所示:

    界面具体设置项介绍如下表所示:

    Tab 页设置项介绍
    配置输入源

    与上游算子相连后,自动获取上游的节点作为输入表,表名即为上游节点的名称

    可以接入两类算子:

    • 流出型算子:DB表输入、RestAPI输入、数据集输入等

    • 过程型算子:数据关联、行列转换、JSON解析等

    如果上游算子为空,提示:请接⼊⾄少⼀个节点作为Spark SQL的输⼊源

    SQL 语句

    由用户自定义输入

    在输入 SQL 语句时,有联想功能,例如:表名加.就能联想字段名:

    数据预览
    -「配置」界面设置好之后,点击「数据预览」Tab,可预览 Spark SQL 转换后的数据

    3. 示例

    3.1 场景模拟

    目前 FineDataLink 只支持 列转行 功能,用户想对下面「成绩」表进行行转列操作。如下图所示:

    成绩表下载:成绩.xls

    3.2 创建任务

    新建任务,将一个数据转换节点拖到设计界面。如下图所示:

    3.3 设置数据输入

    点击「数据转换」节点,将一个DB表输入算子拖到数据转换的设计界面,如下图设置数据来源,SQL 语句取出「成绩」表中所有数据。如下图所示:

    3.4 设置 Spark SQL 算子

    1)将 Spark SQL 算子拖到数据转换的设计界面,并使用线条跟它的上游「DB表输入」算子相连。如下图所示:

    2)按照下图配置 Spark SQL 。语句为:select * from DB表输入 pivot(sum(`分数` ) for `姓名`  in ('王五','张三','李四'))。如下图所示:

    注:表名为上游节点的名称;语句不能直接复制,「DB表输入」需点击生成。

    点击「数据预览」,效果如下图所示:

    3.5 设置DB表输出

    再将一个「DB表输出」算子拖到设计界面,并使用线条跟它的上游「Spark SQL」算子相连。

    点击「DB表输出」算子对它进行设置。如下图所示:


    3.6 运行任务

    1)点击右上角「确定」按钮。如下图所示:

    2)点击右上角保存并运行,日志有执行成功信息表示任务成功运行。如下图所示:

    可以看到数据库 etlwendy 中新增了一张表 chengji ,为行转列后数据。如下图所示:

    Attachment List


    Theme: 数据开发
    前の記事
    次の記事
    • いいね
    • 良くない
    • 閲覧しただけ

    フィードバック

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

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

    不再提示

    10s后关闭

    反馈已提交

    网络繁忙