Lakeflow Designer 包括用于常见数据准备和转换任务的内置运算符。 在左侧窗格中打开运算符菜单,按类别浏览运算符,或使用窗格顶部的 “搜索”运算符... 。 运算符搜索根据意向建议运算符。 例如,键入 average by month 将返回 Aggregate 运算符。 若要在将运算符添加到画布后对其进行配置,请双击该运算符,或将其悬停在画布上,然后单击 (编辑运算符)以打开配置窗格。
每个运算符都显示 AI 生成的说明,说明它的作用。 说明还充当运算符的编辑器:编辑说明将重新配置运算符以匹配说明。
若要了解如何创建自己的用户定义的运算符,请参阅 Lakeflow Designer 中的用户定义的运算符。
源和输出
Source
将数据从 Unity 目录表或其他受支持的源导入设计器。 若要选择源,请按名称搜索表或文件,或按目录和架构浏览。 还可以从此窗格中创建新表。
选择表后,窗格会显示表的名称、所有者和上次更新时间。 单击 “选择新数据源 ”以更改源。 更改源会使所有下游运算符的输出缓存失效。
还可以将 Unity 目录指标视图用作源。 选择指标视图时,选择要包含的维度和度量值,设计器会为你生成聚合查询。
有关整个数据引入选项(包括面向整个 Unity 目录卷或文件夹)的信息,请参阅 将数据引入 Lakeflow 设计器。
输入数据
通过将值键入电子表格样式编辑器来创建表。 使用此运算符可以添加少量引用数据,例如查找值或测试数据,而无需创建单独的源表。
| 字段 | DESCRIPTION |
|---|---|
| 表数据 | 以表的形式输入数据。 第一行定义列标题,其余行是数据。 设计器从其值推断每个列的数据类型。 |
输出
将数据从设计器导出。 输出运算符可以将结果写入 Unity 目录表,将其发布为具体化视图,或将它们写入 Unity 目录卷中的文件。 选择输出 类型的目标。
| 输出类型 | DESCRIPTION |
|---|---|
| Table | 将结果写入托管 Unity 目录表。 设置表名称和输出位置(目录和架构),然后选择写入模式。 |
| 具体化视图 | 在 Unity 目录中将结果发布为具体化视图,以便在视觉数据准备运行时刷新。 |
| 文件 | 将结果写入 Unity 目录卷中的文件。 选择 CSV、Excel 或 JSON 的文件类型,然后设置目标卷和文件名。 |
对于 表 或 文件 输出,请选择每个运行写入到目标的 写入模式的方式:
| 写入模式 | DESCRIPTION |
|---|---|
| 覆盖 | 将现有内容替换为当前运行的结果。 这是默认值。 |
| Append | 将当前运行的结果添加到现有行。 |
| Merge | 通过匹配指定的合并键将行向上插入目标表中。 可用于表输出。 |
单击“ 运行” 以运行视觉对象数据准备并写入结果。 对于表输出,如果该表不存在,则运算符会创建它。 计划的运行使用同一写入模式写入目标。
AI 函数
对数据运行内置 AI 操作。 在配置窗格中,打开 “选择函数 ”,然后选择下表中的其中一个函数。 每个函数在窗格中公开输入(例如列、提示、标签或语言)和输出的选项。
| 函数 | DESCRIPTION |
|---|---|
ai_forecast |
将时序数据预测到指定的地平线。
ai_forecast 是处理整个输入表的表值函数。 |
Transformations
以下运算符对数据执行转换。
Aggregate
通过对数据和计算聚合值进行分组来汇总行。
| 字段 | DESCRIPTION |
|---|---|
| 聚合依据 | 选择列,选择聚合函数,并提供输出列的名称。 单击“ + 添加聚合” 以添加更多内容。 支持的函数:AVG、、COUNT。 MAXMEANMEDIANMINPERCENTILESTDDEVSUMVARIANCE |
| 分组依据 | 选择要分组依据的列。 单击“ + 添加分组” 以添加更多内容。 分组依据中使用的列将自动包含在输出中。 |
结合
将多个表中的数据与匹配的架构合并到单个输出中。
| 字段 | DESCRIPTION |
|---|---|
| Set作 | 选择 “联合”、“ 交错”或 “除外”。 |
| 合并策略 | 选择 “非重复 ”可排除输出中的重复行,或 “全部 ”保留所有行,包括重复行。 |
Filter
使用图形条件生成器根据行是否满足一个或多个条件拆分行。
| 字段 | DESCRIPTION |
|---|---|
| 条件 | 对于每个条件,请选择 一个列、一个 条件类型和一个要有条件匹配 的值 。 支持的条件类型:
对于日期列的条件,日期选取器支持跨年和月导航。 |
Filter 运算符有两个输出,因此可以根据数据是否符合条件对数据进行分支:
| 输出 | DESCRIPTION |
|---|---|
| 包括 | 满足筛选条件的行。 |
| 排除 | 不符合筛选条件的行,包括条件计算结果为 null 的行。 |
加入
通过基于匹配列值组合两个输入数据集,链接键上的两个表。
| 字段 | DESCRIPTION |
|---|---|
| 输入表 | 选择要联接的两个输入表。 |
| 联接条件 | 通过从两个表中选择匹配的列来指定至少一个联接条件。 单击“ + 添加联接”表达式 以添加更多条件。 可选:单击左右表之间的箭头以添加自定义联接条件,然后编辑 AI 生成的说明或编写 SQL。 |
| 匹配大小写 | 关闭时(默认值),字符串联接键不区分大小写(并忽略前导空格和尾随空格)。 打开 Match case 以完全匹配字符串键。 此选项适用于联接键,不适用于自定义联接条件。 |
| 联接类型 | 选择联接类型。 默认情况下,Join 运算符将其结果拆分为三个输出(请参阅以下部分)。 选择 “完全联接”、“ 内部联接”、“ 左联接”或 “右联接 ”以生成单个联接输出。 |
| 输出列 | 可选:选择要包含的列。 默认情况下,包括这两个表中的所有列。 重复的列名接收表名称前缀。 |
| 自定义表达式列 | 可选:基于联接的结果添加自定义表达式列。 |
默认情况下,Join 运算符有三个输出,因此可以根据联接结果对工作流进行分支:
| 输出 | DESCRIPTION |
|---|---|
| 左不匹配 | 左侧输入中没有匹配项的行。 |
| 已匹配 | 在两个输入中匹配的行。 |
| 右不匹配 | 左侧输入中没有匹配项的右侧输入中的行。 |
选择特定的 联接类型 (完整、内部、左或右),运算符将生成单个联接输出,而不是三个拆分输出。
Limit
通过仅传递至指定的最大行数来限制行计数。
| 字段 | DESCRIPTION |
|---|---|
| 最大行数 | 指定要传递的最大行数。 |
透视
以两个方向重塑表格数据。 使用配置窗格顶部的选项卡选择模式。
列→行(透视表)
将一列中的非重复值转换为新的列标题,其中填充了另一列的聚合值。
| 字段 | DESCRIPTION |
|---|---|
| 透视列 | 选择其非重复值成为新标头的列。 |
| 值和聚合 | 选择其值填充透视单元格的列,然后选择聚合函数(例如,SUM、、AVGCOUNT、MIN或MAX)。 配置在窗格中处理缺失值的方式(例如 null 或零)。 |
列→行(逆透视)
将一个或多个列折叠成行。
| 字段 | DESCRIPTION |
|---|---|
| 对列进行逆透视 | 选择要取消透视的列。 |
| 键列和值列 | 设置输出键列和值列的名称。 |
包括列
对于任一模式,请选择哪些列与透视值或取消透视值一起保留在输出中,并删除转换前不需要的列。 设计器从不分配给透视、值或非透视角色的列中推断固定的(分组)列。
排序
对一个或多个列的行进行排序。
| 字段 | DESCRIPTION |
|---|---|
| 排序顺序 | 为每个列选择 ASC (升序) 或 DESC (降序)。 单击“ + 添加排序表达式 ”以按其他列进行排序。 排序遵循标准词法顺序。 |
SQL
为其他运算符未涵盖的任何转换编写自定义 SQL 代码。
| 字段 | DESCRIPTION |
|---|---|
| SQL 编辑器 | 键入 SQL SELECT 语句。 若要引用输入运算符的输出,请使用该运算符的名称作为查询中的表名。 例如:SELECT COUNT(*)FROM aggregate_2WHERE 1 = 1单击 |
| Parameters | 若要引用视觉数据准备参数,请使用命名参数标记语法,例如 :environment。 设计器显示打开运算符进行编辑时编辑器上方的示例。 请参阅参数。 |
Select
从输入数据中选择、重命名和重新排序列。
| 字段 | DESCRIPTION |
|---|---|
| 包括或排除列 | 选择 “以所有列开头 ”或 “以无列开头”,然后使用复选框包括或排除单个列。 拖动列以对列重新排序。 |
| 重命名列 | 在任何列旁边的 “重命名 ”字段中键入新名称。 |
准备
通过对输入数据链接一个或多个操作来清理和派生列。 单击“ + 添加操作 ”并选择一个操作。 根据需要添加任意数量的操作。 它们按顺序应用。
| Action | DESCRIPTION |
|---|---|
| 公式 | 使用自然语言或 SQL 表达式创建新列或覆盖现有列。 |
| 更改类型 | 将列转换为另一种数据类型。 |
| 替换值 | 查找和替换列中的值。 |
| 填充 null | 将 null 值替换为常量。 |
| 文本大小写 | 将大小写更改为小写、大写或标题。 |
| Trim | 从一端或两端删除空格。 |
| 正则表达式替换 | 替换与正则表达式模式匹配的文本。 |
| 提取 | 提取与正则表达式组匹配的子字符串。 |
| 分析日期 | 将字符串分析为日期或时间戳。 |
若要删除操作,请将鼠标悬停在其行上,然后单击
自定义列
“ 公式” 操作将打开表达式编辑器,可在其中使用自然语言或 SQL 代码创建新列或覆盖现有列。 编辑器有两个输入框,双向:
- 说明:键入希望列执行的操作的自然语言说明。 设计器使用 Genie 生成下面的相应代码表达式。
- 表达式:如果希望直接编写或编辑代码,请单击“编辑表达式”按钮。 编辑表达式会自动生成自然语言说明。
Python
对输入数据运行自定义Python(PySpark)。
| 字段 | DESCRIPTION |
|---|---|
result |
将单个 DataFrame 分配给该帧,该帧 result将成为操作员的输出。 |
inputs["data"] |
按上游顺序排列的输入数据帧列表。 运算符详细信息窗格按顺序显示每个输入的名称。 例如,Available inputs: inputs["data"][0] (customers), inputs["data"][1] (sales)。 |
| Parameters | 调用 dbutils.widgets.get(),例如 dbutils.widgets.get("environment"),引用视觉对象数据准备参数。 设计器显示打开运算符进行编辑时编辑器上方的示例。 请参阅参数。 |
最小模式是在存在时使用第一个输入,否则为空 DataFrame:
# inputs["data"] is a list of input DataFrames
result = inputs["data"][0] if inputs["data"] else spark.createDataFrame([], "col: string")
在此处,可以在工作分配结束之前将 DataFrame 操作(例如, select、 filter或 withColumn联接) result 链接在一起,或者替换为 result 从中 inputs["data"]生成的新 DataFrame。
组织
注意事项
在画布上添加注释,以便你可以记录工作流本身:其用途、假设、注意事项或交接上下文,供以后打开视觉数据准备的人员使用。
| 字段 | DESCRIPTION |
|---|---|
| 内容 | 使用富文本编辑器在画布上内联编辑笔记内容。 可以添加标题、文本样式、链接、图像和表格,其中纯文本不够。 注释不会影响数据流经运算符的方式。 |
组
在画布上直观地对运算符进行分组,而不会更改数据之间的流动方式,当视觉数据准备增大或想要反映逻辑阶段时,这非常有用。
| 字段 | DESCRIPTION |
|---|---|
| 添加到组 | 将一个或多个运算符拖到组上以将其添加到组。 |
| 从所选内容创建 | 选择一个或多个运算符,打开快捷菜单(右键单击),然后选择“ 创建新组 ”以在新组中包装所选内容。 |
| Name | 为组指定描述性名称。 |
| 最小化/展开 | 单击 “最小化 ”或 “展开 ”可显示或隐藏画布上的组内容。 |
Visualization
从输入数据创建可视化效果,并将其直接呈现在画布上。 将可视化效果运算符连接到生成表格数据的任何运算符,以绘制结果图表,而无需离开设计器。
若要配置可视化效果,请打开运算符并选择 可视化 效果类型,然后将列映射到图表。
| 字段 | DESCRIPTION |
|---|---|
| Visualization | 要呈现的图表类型,如 条形图、 区域或 计数器。 |