如何在 Spark DataFrame 上使用数据整理器

数据整理器是一种基于笔记本的探索性数据分析工具,现在支持 Spark 数据帧和 pandas 数据帧。 除了 Python 代码之外还可以生成 PySpark 代码。 有关数据整理器的总体概述(其中介绍了如何探索和转换 pandas 数据帧),请参阅主教程。 此教程展示了如何使用数据整理器来探索和转换 Spark 数据帧。

先决条件

限制

  • 目前仅 pandas 数据帧支持自定义代码操作。
  • 尽管界面的不同部分可以最小化或隐藏,以适应较小的屏幕,但数据整理器在大型显示器上的显示效果最好。

使用 Spark 数据帧启动数据整理器

用户可以直接从 Microsoft Fabric 笔记本中打开数据整理器中的 Spark 数据帧,方法是导航到显示 pandas 数据帧的同一下拉提示。 活动 Spark DataFrame 的列表出现在活动 pandas 变量列表下方的下拉提示中。

此代码片段使用 pandas 数据整理器教程中使用的相同示例数据创建 Spark 数据帧:

import pandas as pd

# Read a CSV into a Spark DataFrame
sdf = spark.createDataFrame(pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/titanic.csv"))
display(sdf)

在笔记本功能区的“主页”选项卡下,使用数据整理器下拉提示,浏览要编辑的 DataFrame。 选择要在数据整理器中打开的 Pandas DataFrames。

提示

当笔记本内核繁忙时,无法打开数据整理器。 执行单元格必须先完成其执行,然后才可启动数据整理器,如以下屏幕截图所示:

显示包含“数据整理器”下拉列表提示的 Fabric 笔记本的屏幕截图。

选择自定义示例

出于性能原因,数据整理器会自动将 Spark 数据帧转换为 pandas 示例。 但是,该工具生成的所有代码最终都会在导出回笔记本时转换为 PySpark。 与任何 pandas DataFrame 一样,可以自定义默认的示例。 要使用数据整理器打开任何活动数据帧的自定义示例,从下拉列表中选择“选择自定义示例”,如以下屏幕截图所示:

显示 Data Wrangler 下拉列表提示的屏幕截图,其中概述了自定义示例选项。

执行此操作会启动一个弹出项,其中包含用于指定所需示例大小(行数)和采样方法(第一条记录、最后一条记录或随机集)的选项,如以下屏幕截图所示:

显示 Data Wrangler 自定义示例提示的屏幕截图。

查看摘要统计信息

当数据整理器加载时,会在预览网格上方显示一个信息横幅。 此横幅说明了 Spark 数据帧暂时转换为 pandas 示例,但所有生成的代码最终将转换为 PySpark。 除此之外,在 Spark 数据帧上使用数据整理器与在 pandas 数据帧上使用数据整理器没有区别。 “摘要”面板中的描述性概述显示有关示例维度、缺失值等的信息。 选择“数据整理器”网格中的任何列将提示“摘要”面板更新并显示有关该特定列的描述性统计信息。 其标头中还会提供有关每列的快速见解。

提示

列特定的统计信息和视觉效果(在“摘要”面板和列标题中)取决于列数据类型。 例如,仅当列强制转换为数值类型时,数值列的装箱直方图才会显示在列标头中,如以下屏幕截图所示:

显示“数据整理器”显示网格和“摘要”面板的屏幕截图。

浏览数据清理操作

可以在“操作”面板中找到数据清理步骤的可搜索列表。 在“操作”面板中,选择数据清理步骤会提示你提供一个或多个目标列,以及完成该步骤所需的任何参数。 例如,提示以数字方式缩放列需要新的值范围,如以下屏幕截图所示:

显示“数据整理器操作”面板的屏幕截图。

提示

可从每个列标题的菜单中应用较小的操作选择,如以下屏幕截图所示:

显示可从列标题菜单应用的数据整理器操作的屏幕截图。

预览和应用操作

所选操作的结果会自动在数据整理器显示网格中预览,并且相应的代码会自动出现在网格下方的面板中。 若要提交预览的代码,请选择任一位置的“应用”。 要删除预览的代码并尝试新的操作,请选择“放弃”,如以下屏幕截图所示:

显示数据整理器操作正在进行的屏幕截图。

应用操作后,数据整理器显示网格和摘要统计信息将更新以反映结果。 代码显示在已提交操作的运行列表中,位于“清理步骤”面板中,如以下屏幕截图所示:

显示已应用数据整理器操作的屏幕截图。

提示

始终可以撤消最近应用的步骤。 在“清理步骤”面板中,如果将光标悬停在该最近应用的步骤上,将显示垃圾桶图标,如以下屏幕截图所示:

显示可以撤消的数据整理器操作的屏幕截图。

下表汇总了数据整理器当前支持的操作:

操作 描述
Sort 按升序或降序排序
Filter 根据一个或多个条件筛选行
独热编码 为现有列中每个唯一值创建新列,指示每行是否存在这些值
使用分隔符的独热编码 使用分隔符的拆分和独热编码分类数据
更改列类型 更改列的数据类型
删除列 删除一个或多个列
选择列 选择要保留的一个或多个列,然后删除其余列
重命名列 重命名列
删除缺少的值 删除包含缺失值的行
删除重复行 删除一列或多列中具有重复值的所有行
填充缺失值 将缺少值的单元格替换为新值
查找和替换 将单元格替换为完全匹配的模式
按列分组和聚合 按列值分组并聚合结果
剥离空格 删除文本开头和结尾的空格
拆分文本 根据用户定义的分隔符将一列拆分为多个列
将文本转换为小写 将文本转换为小写
将文本转换为大写 将文本转换为大写
缩放最小/最大值 在最小值和最大值之间缩放数字列
快速填充 基于从现有列派生的示例自动创建新列

修改显示

可以随时使用位于数据整理器显示网格上方工具栏中的“视图”选项卡自定义界面。 这可以根据你的偏好设置和屏幕大小隐藏或显示不同的窗格,如以下屏幕截图所示:

显示用于自定义显示视图的数据整理器菜单的屏幕截图。

保存和导出代码

数据整理器显示网格上方的工具栏提供了保存生成的代码的选项。 可以将代码复制到剪贴板或将其作为函数导出到笔记本。 对于 Spark 数据帧,pandas 示例上生成的所有代码在返回笔记本之前都会转换为 PySpark。 在数据整理器关闭之前,该工具会显示翻译后的 PySpark 代码的预览,并提供导出中间 pandas 代码的选项。

提示

数据整理器生成的代码仅在手动运行新单元格时应用,并且不会覆盖原始 DataFrame,如以下屏幕截图所示:

显示数据整理器中的导出代码选项的屏幕截图。

代码将转换为 PySpark,如以下屏幕截图所示:

显示 Data Wrangler 中导出代码提示中的 PySpark 预览的屏幕截图。

然后可以运行导出的代码,如以下屏幕截图所示:

显示笔记本中返回数据整理器生成的代码的屏幕截图。