注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

基本示例

本页探讨了在Preparations界面中清理和准备数据的基本变换示例。

移除前导和尾随空格

如果某些值有前导/尾随空格,它们将在统计区域中计入 需要修剪

点击 需要修剪 旁边的粉色灯泡,然后点击 修剪空格 来移除该列中值的前导和尾随空格。

将空字符串设置为 null

如果某些值是空字符串,它们将在统计区域中计入

点击 旁边的粉色灯泡,然后点击 设置为null 将该列中任何空字符串值设置为 null

一次性规范化多个字符串列

  1. 选择您希望规范化的字符串列(或默认选择所有字符串列而不选择任何列)。

  2. 选择 规范化字符串 操作并选择您希望应用的操作。

将值规范化为大写

左侧的统计面板将显示列中有多少值是大写、小写或混合大小写。

要将值规范化为大写,选择 更改大小写 操作并点击 大写(您也可以根据需要使用 小写标题大小写)。

解析货币字符串为数值列

如果数值有多余的非数值字符(例如,$1,234.56),则列类型通常会被检测为 字符串。然而,列应为数值型以便进行数值分析。

检查统计区域以确保值显示为 数值

如果某些值显示为非字母、大写等,您必须先清理它们以允许它们被解析为数字。点击相关类别(例如 非字母)以查看这些值并开始清理。

点击 更改类型 按钮,从下拉菜单中选择整数(用于整数)或双精度(用于带小数的数字)。

将暗示无数据的值设置为null,例如N/A

通常,列会有一些值暗示没有可用数据(例如N/A、其他、无、未知等)。通常,这些值应为 null 以正确指示该单元格中没有可用数据。

  1. 在直方图中选择一个或多个值。

    • 如果未看到这些值,尝试使用 筛选... 框搜索。
  2. 点击 新值 操作,输入 /NULL,然后点击 应用

确保在应用更改之前选择一个或多个值,否则整个列将被设置为 null

规范化邮政编码为五位数

邮政编码列有时会混合五位数(12345)和九位数(12345-6789)的值。通常,应将邮政编码规范化为单一格式以便进行分组和其他准备工作流程。

使用 提取 操作将邮政编码列规范化为五位数。点击 提取 操作,从 类型 下拉菜单中选择 索引子字符串,然后使用起始索引 1 和结束索引 5

将所有列重命名为蛇形命名法

蛇形命名法(lowercase_with_underscores)是在许多部署中常见的列命名标准。

点击 规范化列名 操作。如果操作不可见,确保未选择任何列。选择 标准,然后点击 应用

所有列将立即重命名为蛇形命名法,这意味着列值将采用小写字母和下划线替代特殊字符的格式。

重命名多列

视图是重命名多列的最简单方法。通过点击屏幕顶部的 切换到 视图。

批量列更改在您点击 应用 之前不会保存。

对于需要重命名的任何列,点击列名并根据需要进行编辑。列名将变为绿色以表示更改已暂存但尚未应用。

一旦所有列名修正完成,点击右侧更改日志顶部的 应用 按钮以保存所有列名更改。

删除null列

有时,列仅包含 null 值。您可以通过完全删除列来清理数据集。

检查统计面板以验证该列完全包含null值;统计应显示 Null100%

然后,点击 删除列 按钮以移除该列。

移除具有null值的行

有时,某特定列中的 null 值行无关紧要并可以移除。

选择该列,并检查统计面板的 Null 部分以查看该列有多少行具有 null 值。

接下来,点击统计面板中的 Null,然后点击 聚焦 按钮,仅聚焦于具有 null 值的行。确保这些行无关紧要并可以删除。

要移除这些行,请点击屏幕顶部的 移除行 按钮。

捕获原始数据的行顺序

从初始视图中,使用 添加新列 操作,并使用以下表达式:

Copied!
1 monotonically_increasing_id()

monotonically_increasing_id() 是一个用于生成单调递增的唯一标识符的函数。它通常用于分布式数据处理环境中(例如 Apache Spark),为每一行生成一个不重复的ID。需要注意的是,虽然这些ID是单调递增的,但在分布式计算环境中,生成的ID可能不是连续的。 这将添加一个基于行顺序保证递增的数字列,但可能既不连续也不确定。

每次计算时列值可能会更改。这可能导致意想不到的行为,例如从准备中保存的数据集在多次构建时与行相关联的数字不同,或者行号列的直方图与表格数据不一致。

添加行号(仅适用于小型数据集)

从初始视图中,使用添加新列操作,并使用以下表达式:

Copied!
1 2 3 4 -- 使用 row_number() 函数生成行号 -- over 子句指定排序方式,这里使用 monotonically_increasing_id() 作为排序标准 -- monotonically_increasing_id() 是一个生成唯一标识符的函数,常用于需要唯一标识的场景 row_number() over (order by monotonically_increasing_id())

计算这个行号表达式可能非常耗费资源,并且在处理大型数据集时,它可能会显著影响准备的性能。

在更改日志中间插入更改

从初始视图中,选择要在其上方插入更改的更改。然后,通过点击该更改或在更改下拉菜单中选择预览数据进入预览模式。

对准备进行更改。这些更改将出现在正在预览的更改上方但未来更改的下方。

通过点击预览警告栏中的取消退出预览模式。