如何在 Spark DataFrame 上使用数据整理器
数据整理器是一种基于笔记本的探索性数据分析工具,现在支持 Spark 数据帧和 pandas 数据帧。 除了 Python 代码之外还可以生成 PySpark 代码。 有关数据整理器的总体概述(其中介绍了如何探索和转换 pandas 数据帧),请参阅主教程。 此教程展示了如何使用数据整理器来探索和转换 Spark 数据帧。
先决条件
获取 Microsoft Fabric 订阅。 或者注册免费的 Microsoft Fabric 试用版。
登录 Microsoft Fabric。
使用主页左侧的体验切换器切换到 Synapse 数据科学体验。
限制
- 目前仅 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。
提示
当笔记本内核繁忙时,无法打开数据整理器。 执行单元格必须先完成其执行,然后才可启动数据整理器,如以下屏幕截图所示:
选择自定义示例
出于性能原因,数据整理器会自动将 Spark 数据帧转换为 pandas 示例。 但是,该工具生成的所有代码最终都会在导出回笔记本时转换为 PySpark。 与任何 pandas DataFrame 一样,可以自定义默认的示例。 要使用数据整理器打开任何活动数据帧的自定义示例,从下拉列表中选择“选择自定义示例”,如以下屏幕截图所示:
执行此操作会启动一个弹出项,其中包含用于指定所需示例大小(行数)和采样方法(第一条记录、最后一条记录或随机集)的选项,如以下屏幕截图所示:
查看摘要统计信息
当数据整理器加载时,会在预览网格上方显示一个信息横幅。 此横幅说明了 Spark 数据帧暂时转换为 pandas 示例,但所有生成的代码最终将转换为 PySpark。 除此之外,在 Spark 数据帧上使用数据整理器与在 pandas 数据帧上使用数据整理器没有区别。 “摘要”面板中的描述性概述显示有关示例维度、缺失值等的信息。 选择“数据整理器”网格中的任何列将提示“摘要”面板更新并显示有关该特定列的描述性统计信息。 其标头中还会提供有关每列的快速见解。
提示
列特定的统计信息和视觉效果(在“摘要”面板和列标题中)取决于列数据类型。 例如,仅当列强制转换为数值类型时,数值列的装箱直方图才会显示在列标头中,如以下屏幕截图所示:
浏览数据清理操作
可以在“操作”面板中找到数据清理步骤的可搜索列表。 在“操作”面板中,选择数据清理步骤会提示你提供一个或多个目标列,以及完成该步骤所需的任何参数。 例如,提示以数字方式缩放列需要新的值范围,如以下屏幕截图所示:
提示
可从每个列标题的菜单中应用较小的操作选择,如以下屏幕截图所示:
预览和应用操作
所选操作的结果会自动在数据整理器显示网格中预览,并且相应的代码会自动出现在网格下方的面板中。 若要提交预览的代码,请选择任一位置的“应用”。 要删除预览的代码并尝试新的操作,请选择“放弃”,如以下屏幕截图所示:
应用操作后,数据整理器显示网格和摘要统计信息将更新以反映结果。 代码显示在已提交操作的运行列表中,位于“清理步骤”面板中,如以下屏幕截图所示:
提示
始终可以撤消最近应用的步骤。 在“清理步骤”面板中,如果将光标悬停在该最近应用的步骤上,将显示垃圾桶图标,如以下屏幕截图所示:
下表汇总了数据整理器当前支持的操作:
操作 | 描述 |
---|---|
Sort | 按升序或降序排序 |
Filter | 根据一个或多个条件筛选行 |
独热编码 | 为现有列中每个唯一值创建新列,指示每行是否存在这些值 |
使用分隔符的独热编码 | 使用分隔符的拆分和独热编码分类数据 |
更改列类型 | 更改列的数据类型 |
删除列 | 删除一个或多个列 |
选择列 | 选择要保留的一个或多个列,然后删除其余列 |
重命名列 | 重命名列 |
删除缺少的值 | 删除包含缺失值的行 |
删除重复行 | 删除一列或多列中具有重复值的所有行 |
填充缺失值 | 将缺少值的单元格替换为新值 |
查找和替换 | 将单元格替换为完全匹配的模式 |
按列分组和聚合 | 按列值分组并聚合结果 |
剥离空格 | 删除文本开头和结尾的空格 |
拆分文本 | 根据用户定义的分隔符将一列拆分为多个列 |
将文本转换为小写 | 将文本转换为小写 |
将文本转换为大写 | 将文本转换为大写 |
缩放最小/最大值 | 在最小值和最大值之间缩放数字列 |
快速填充 | 基于从现有列派生的示例自动创建新列 |
修改显示
可以随时使用位于数据整理器显示网格上方工具栏中的“视图”选项卡自定义界面。 这可以根据你的偏好设置和屏幕大小隐藏或显示不同的窗格,如以下屏幕截图所示:
保存和导出代码
数据整理器显示网格上方的工具栏提供了保存生成的代码的选项。 可以将代码复制到剪贴板或将其作为函数导出到笔记本。 对于 Spark 数据帧,pandas 示例上生成的所有代码在返回笔记本之前都会转换为 PySpark。 在数据整理器关闭之前,该工具会显示翻译后的 PySpark 代码的预览,并提供导出中间 pandas 代码的选项。
提示
数据整理器生成的代码仅在手动运行新单元格时应用,并且不会覆盖原始 DataFrame,如以下屏幕截图所示:
代码将转换为 PySpark,如以下屏幕截图所示:
然后可以运行导出的代码,如以下屏幕截图所示:
相关内容
- 若要了解数据整理器的概述,请参阅此配套文章
- 若要在 Visual Studio Code 中试用数据整理器,请参阅 VS Code 中的数据整理器
- 我们漏掉了你需要的功能吗? 请告诉我们! 在 Fabric Ideas 论坛上提出建议