本页介绍了在 Cloud Data Fusion Studio 的 Wrangler 工作区中准备数据时,如何从字段(单元格)中提取和转换数据。
如需对此类数据执行转换,您需要将其拆分为单独的列。在 Wrangler 中,您可以从列中提取数据,并为提取的数据创建新列。您可以根据模式、分隔符或位置提取值。
使用模式提取数据
您可以使用以下模式从字符串数据类型的列中的字段中提取数据:
- 信用卡
- 日期
- 日期时间
- 电子邮件
- HTML 锚点中的网址
- IPv4 地址
- ISBN 代码
- MAC 地址
- 包含 N 位数字的号码
- SSN
- 开始和结束模式
- 时间
如需根据模式提取数据,请按以下步骤操作:
- 前往 Cloud Data Fusion 中的 Wrangler 工作区。
- 在数据标签页中,找到列名称,然后点击 arrow_drop_down 展开箭头。
- 依次选择提取字段 > 使用模式,然后选择一个选项,例如网址。
- 可选:点击显示模式可查看模式的正则表达式。
- 点击提取。
Wrangler 会根据所选模式提取字段,并将 extract-regex-groups
指令添加到食谱中。当您运行数据流水线时,Cloud Data Fusion 会将转换应用于该列中的所有行。
在以下示例中,某个列包含一个数字,后跟一个电子邮件地址:
电子邮件 |
---|
1 222larabrown@gmail.com |
2 cloudysanfrancisco@gmail.com |
如需提取电子邮件地址,请选择 Email 模式。点击提取后,Wrangler 会保留原始列,并创建一个仅包含电子邮件地址的新列:
电子邮件 | Emails_1 |
---|---|
1 222larabrown@gmail.com | 222larabrown@gmail.com |
2 cloudysanfrancisco@gmail.com | cloudysanfrancisco@gmail.com |
提取带分隔符的数据
您可以根据以下分隔符将数据提取到两列或更多列中:
- 英文逗号
- Tab
- 竖线符
- 空格符
- 自定义分隔符
如果值不含分隔符,则系统不会向新列中的相应字段添加任何值。
如需根据分隔符提取值,请执行以下操作:
- 前往 Cloud Data Fusion 中的 Wrangler 工作区。
- 在数据标签页中,找到列名称,然后点击 arrow_drop_down 展开箭头。
- 依次选择提取字段 > 使用分隔符,然后选择一个选项,例如英文逗号。
- 点击提取。
Wrangler 会根据所选的分隔符提取字段,并将 split-to-columns
指令添加到食谱中。运行数据流水线时,Cloud Data Fusion 会转换该列中的所有值。
在以下示例中,某个列包含多个以英文逗号分隔的名称:
ID | 名称 |
---|---|
1 | Lee,Lucian,Luka |
2 | Mahan、Noam、Nur |
在此示例中,使用英文逗号分隔符模式会将原始 Name
列中的值提取到三个新列中:
ID | 名称 | Name_1 | Name_2 | Name_3 |
---|---|---|---|---|
1 | Lee,Lucian,Luka | Lee | Lucian | Luka |
2 | Mahan、Noam、Nur | Mahan | Noam | Nur |
按位置提取数据
您可以根据字符串中的位置提取字符串的一部分。
如需根据数据的位置提取数据,请执行以下操作:
- 前往 Cloud Data Fusion 中的 Wrangler 工作区。
- 在数据标签页中,找到列名称,然后点击 arrow_drop_down 展开箭头。
- 依次选择提取字段 > 使用位置。您可以提取的列值的背景为蓝色。
- 在该列的任意单元格中,选择要提取的字符。
- 在目标列的名称字段中,输入名称。
- 点击应用。
系统会从该列中的每一行中提取所选部分的值。
Wrangler 会根据所选模式提取字段,并将 cut-character
指令添加到食谱中。当您运行数据流水线时,Cloud Data Fusion 会将转换应用于该列中的所有值。
后续步骤
- 详细了解 Wrangler 指令。