使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

使用 Amazon SageMaker Data Wrangler 从 Databricks 准备数据以进行机器学习

数据科学和数据工程团队将大部分时间花在机器学习 (ML) 生命周期的数据准备阶段,执行数据选择、清理和转换步骤。 为了产生有意义的见解和预测,这是任何 ML 工作流程的必要且重要的步骤,因为不良或低质量的数据会大大降低所获得见解的相关性。

数据工程团队传统上负责采集、整合和转换原始数据以供下游使用。 数据科学家通常需要对特定领域的机器学习用例(例如自然语言和时间序列)的数据进行额外处理。 例如,某些 ML 算法可能对缺失值、稀疏特征或异常值敏感,需要特别考虑。 即使在数据集状态良好的情况下,数据科学家也可能希望转换特征分布或创建新特征,以最大限度地从模型中获得洞察力。 为了实现这些目标,数据科学家必须依靠数据工程团队来适应请求的更改,从而导致模型开发过程中的依赖性和延迟。 或者,数据科学团队可以选择使用各种编程范式在内部执行数据准备和特征工程。 但是,它需要在库和框架的安装和配置方面投入时间和精力,这并不理想,因为这些时间可以更好地用于优化模型性能。

亚马逊SageMaker数据牧马人 简化数据准备和特征工程过程,通过为数据科学家提供单一的可视化界面来选择、清理和探索他们的数据集,将为 ML 聚合和准备数据所需的时间从几周缩短到几分钟。 Data Wrangler 提供超过 300 种内置数据转换,以帮助规范化、转换和组合功能,而无需编写任何代码。 您可以从多个数据源导入数据,例如 亚马逊简单存储服务 (Amazon S3), 亚马逊雅典娜, 亚马逊Redshift雪花. 您现在还可以使用 Databricks 作为 Data Wrangler 中的数据源,可以轻松地为 ML 准备数据。

Databricks Lakehouse 平台结合了数据湖和数据仓库的最佳元素,以提供数据仓库的可靠性、强大的治理和性能以及数据湖的开放性、灵活性和机器学习支持。 使用 Databricks 作为 Data Wrangler 的数据源,您现在可以快速轻松地连接到 Databricks,使用 SQL 交互式查询存储在 Databricks 中的数据,并在导入前预览数据。 此外,您可以将 Databricks 中的数据与存储在 Amazon S3 中的数据以及通过 Amazon Athena、Amazon Redshift 和 Snowflake 查询的数据相结合,为您的 ML 使用案例创建正确的数据集。

在这篇博文中,我们使用 Amazon SageMaker Data Wrangler 转换 Lending Club Loan 数据集,以用于 ML 模型训练。

解决方案概述

下图说明了我们的解决方案体系结构。

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

Lending Club Loan 数据集包含 2007-2011 年发放的所有贷款的完整贷款数据,包括当前贷款状态和最新付款信息。 它有 39,717 行、22 个特征列和 3 个目标标签。

为了使用 Data Wrangler 转换我们的数据,我们完成了以下高级步骤:

  1. 下载并拆分数据集。
  2. 创建数据管理员流。
  3. 将数据从 Databricks 导入到 Data Wrangler。
  4. 将数据从 Amazon S3 导入 Data Wrangler。
  5. 加入数据。
  6. 应用转换。
  7. 导出数据集。

先决条件

这篇文章假设您有一个正在运行的 Databricks 集群。 如果您的集群在 AWS 上运行,请确认您已配置以下内容:

数据块设置

关注 使用实例配置文件安全访问 S3 存储桶 对于所需的 AWS身份和访问管理 (IAM) 角色、S3 存储桶策略和 Databricks 集群配置。 确保 Databricks 集群配置了正确的 Instance Profile,在高级选项下选中,以访问所需的 S3 存储桶。

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

在 Databricks 集群启动并运行并具有对 Amazon S3 的所需访问权限后,您可以获取 JDBC URL 来自 Databricks 集群,供 Data Wrangler 用来连接到它。

获取 JDBC URL

要获取 JDBC URL,请完成以下步骤:

  1. 在 Databricks 中,导航到集群 UI。
  2. 选择您的集群。
  3. 点击 配置 标签,选择 高级选项.
  4. 高级选项, 选择 数据库连接/ODBC 标签。
  5. 复制 JDBC URL。
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

确保替换您的个人访问权限 象征 在网址中。

数据管理员设置

此步骤假设您有权访问 Amazon SageMaker,它是 亚马逊SageMaker Studio和 Studio 用户。

要允许从 Data Wrangler 访问 Databricks JDBC 连接,Studio 用户需要以下权限:

  • secretsmanager:PutResourcePolicy

按照以下步骤更新分配给具有上述权限的 Studio 用户(作为 IAM 管理用户)的 IAM 执行角色。

  1. 在IAM控制台上,选择 角色 在导航窗格中。
  2. 选择分配给 Studio 用户的角色。
  3. 添加权限.
  4. 创建内联策略.
  5. 对于服务,选择 秘密经理.
  6. On 行动,选择 访问权限.
  7. 权限管理.
  8. 放置资源策略.
  9. 针对 资源,选择 具体 并选择 此帐户中的任何.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

下载并拆分数据集

你可以开始 下载数据集. 出于演示目的,我们通过复制特征列来拆分数据集 id, emp_title, emp_length, home_ownerannual_inc 创造第二个 贷款_2.csv 文件。 我们从原始贷款文件中删除了上述列,除了 id 列并将原始文件重命名为 贷款_1.csv. 上传 贷款_1.csv 文件以 Databricks 创建一个表 loans_1贷款_2.csv 在 S3 存储桶中。

创建数据管理员流

有关 Data Wrangler 先决条件的信息,请参阅 开始使用 Data Wrangler.

让我们从创建一个新的数据流开始。

  1. 在Studio控制台上, 文件 菜单中选择 全新.
  2. 数据管理员流程.
  3. 根据需要重命名流。
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

或者,您可以从 Launcher 创建新的数据流。

  • 在 Studio 控制台上,选择 亚马逊SageMaker Studio 在导航窗格中。
  • 新数据流.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

创建新流可能需要几分钟才能完成。 创建流后,您会看到 导入日期 页面上发布服务提醒。

将数据从 Databricks 导入 Data Wrangler

接下来,我们将 Databricks (JDBC) 设置为 Data Wrangler 中的数据源。 要从 Databricks 导入数据,我们首先需要将 Databricks 添加为数据源。

  1. 点击 导入日期 Data Wrangler 流程​​的选项卡,选择 添加数据源.
  2. 在下拉菜单上,选择 数据块 (JDBC).
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

点击 从 Databricks 导入数据 页面,您输入您的集群详细信息。

  1. 针对 数据集名称,输入要在流文件中使用的名称。
  2. 针对 驱动器, 选择驱动程序 com.simba.spark.jdbc.Driver.
  3. 针对 JDBC 网址,输入之前获取的 Databricks 集群的 URL。

URL 应类似于以下格式 jdbc:spark://<serve- hostname>:443/default;transportMode=http;ssl=1;httpPath=<http- path>;AuthMech=3;UID=token;PWD=<personal-access-token>.

  1. 在 SQL 查询编辑器中,指定以下 SQL SELECT 语句:
    select * from loans_1

如果您在将数据上传到 Databricks 时选择了不同的表名,请相应地替换上述 SQL 查询中的 loan_1。

SQL查询 在 Data Wrangler 部分,您可以查询连接到 JDBC Databricks 数据库的任何表。 预选的 启用采样 默认情况下,设置检索数据集的前 50,000 行。 根据数据集的大小,取消选择 启用采样 可能会导致更长的导入时间。

  1. 运行.

运行查询可以直接在 Data Wrangler 中预览您的 Databricks 数据集。
使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

  1. 进口.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

Data Wrangler 可以灵活地为一个 Databricks 集群或多个集群设置多个并发连接(如果需要),从而能够对组合数据集进行分析和准备。

将数据从 Amazon S3 导入 Data Wrangler

接下来,让我们导入 loan_2.csv 来自 Amazon S3 的文件。

  1. 在导入选项卡上,选择 Amazon S3 作为数据源。
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  2. 导航到 S3 存储桶以获取 loan_2.csv 文件中。

当您选择 CSV 文件时,您可以预览数据。

  1. 更多信息 窗格中,选择 高级配置 确保;确定 启用采样 被选中并且 被选为 分隔符.
  2. 进口.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

之后 loans_2.csv 数据集成功导入后,数据流界面同时显示 Databricks JDBC 和 Amazon S3 数据源。

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

加入数据

现在我们已经从 Databricks 和 Amazon S3 导入数据,让我们使用一个通用的唯一标识符列连接数据集。

  1. 点击 数据流 标签,用于 资料类型, 选择加号 loans_1.
  2. 加入.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  3. 选择 loans_2.csv 文件作为 数据集。
  4. 配置 设置加入条件。
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  5. 针对 名称, 输入连接的名称。
  6. 针对 联接类型,选择 对于这个职位。
  7. 选择 id 要加入的列。
  8. 使用 预览连接的数据集。
  9. 地址 将其添加到数据流中。
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

应用转换

Data Wrangler 带有 300 多种内置转换,无需编码。 让我们使用内置转换来准备数据集。

下降柱

首先,我们删除冗余 ID 列。

  1. 在加入的节点上,选择加号。
  2. 添加变换.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  3. 变换, 选择 + 添加步骤.
  4. 管理栏.
  5. 针对 改造,选择 下降柱.
  6. 针对 要删除的列, 选择列 id_0.
  7. 预览.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  8. 地址.

格式字符串

让我们应用字符串格式从 int_raterevol_util 列。

  1. 点击 时间 标签,在 变换,选择 + 添加步骤.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  2. 格式字符串.
  3. 针对 改造,选择 从右侧删除字符.

Data Wrangler 允许您同时在多个列上应用您选择的转换。

  1. 针对 输入列,选择 int_raterevol_util.
  2. 针对 要删除的字符,输入 %.
  3. 预览.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  4. 地址.

特色化文本

现在让我们矢量化 verification_status,文本特征列。 我们通过应用计数向量器和标准标记器将文本列转换为词频-逆文档频率 (TF-IDF) 向量,如下所述。 如果需要,Data Wrangler 还提供了带上您自己的标记器的选项。

  1. 变压器,选择 + 添加步骤.
  2. 特色化文本.
  3. 针对 改造,选择 向量化.
  4. 针对 输入列,选择 verification_status.
  5. 预览.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  6. 地址.

导出数据集

在我们对不同的列类型(包括文本、分类和数字)应用多个转换后,我们就可以使用转换后的数据集进行 ML 模型训练了。 最后一步是将转换后的数据集导出到 Amazon S3。 在 Data Wrangler 中,您可以从多个选项中选择转换的下游使用:

在这篇文章中,我们利用 出口数据 在选项 改造 查看以将转换后的数据集直接导出到 Amazon S3。

  1. 出口数据.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。
  2. 针对 S3位置,选择 浏览 并选择您的 S3 存储桶。
  3. 出口数据.
    使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。

清理

如果您完成了 Data Wrangler 的工作, 关闭您的 Data Wrangler 实例 以免产生额外费用。

结论

在这篇文章中,我们介绍了如何快速轻松地设置和连接 Databricks 作为 Data Wrangler 中的数据源,使用 SQL 交互式查询存储在 Databricks 中的数据,以及在导入前预览数据。 此外,我们还研究了如何将 Databricks 中的数据与存储在 Amazon S3 中的数据连接起来。 然后,我们对组合数据集应用数据转换以创建数据准备管道。 要探索更多 Data Wrangler 的分析功能,包括目标泄漏和偏差报告生成,请参阅以下博客文章 使用 Amazon SageMaker Data Wrangler 加速数据准备以预测糖尿病患者再入院.

要开始使用 Data Wrangler,请参阅 使用 Amazon SageMaker Data Wrangler 准备 ML 数据,并查看有关 Data Wrangler 的最新信息 产品页面.


作者简介

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。立体盆 是 AWS 的解决方案架构师,专注于 AI/ML。 他热衷于帮助客户使用人工智能和机器学习进行创新并实现其业务目标。 在业余时间,Roop 喜欢阅读和远足。

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。Igor Alekseev 是 AWS 数据和分析领域的合作伙伴解决方案架构师。 Igor 与战略合作伙伴合作,帮助他们构建复杂的 AWS 优化架构。 在加入 AWS 之前,作为数据/解决方案架构师,他实施了许多大数据项目,包括 Hadoop 生态系统中的多个数据湖。 作为一名数据工程师,他参与了将 AI/ML 应用于欺诈检测和办公自动化的工作。 Igor 的项目涉及多个行业,包括通信、金融、公共安全、制造和医疗保健。 早些时候,Igor 担任全栈工程师/技术主管。

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。Huong Nguyen 是AWS的高级产品经理。 她负责SageMaker Studio的用户体验。 她拥有13年为企业和消费者领域开发客户痴迷和数据驱动产品的经验。 在业余时间,她喜欢读书,自然生活和与家人共度时光。

使用 Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence 准备来自 Databricks 的数据以进行机器学习。 垂直搜索。 哎。亨利王 是 AWS 的一名软件开发工程师。 他最近从加州大学戴维斯分校毕业后加入了 Data Wrangler 团队。 他对数据科学和机器学习感兴趣,并将 3D 打印作为业余爱好。

时间戳记:

更多来自 AWS机器学习