转换数据 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

转换数据

Amazon SageMaker 数据牧羊人提供了大量的 ML 数据转换,以简化数据的清理、转换和功能化。添加转换时,它会向数据流添加一个步骤。添加的每个转换都会修改数据集并生成一个新的数据框。所有后续转换都适用于生成的数据框。

Data Wrangler 包括内置的转换,您可以使用它来转换列,而无需任何代码。您还可以使用 PySpark、熊猫和 PysPark SQL 添加自定义转换。有些变换可以在您的数据集中创建一个新的输出列。

使用此页可以了解有关这些内置转换和自定义转换的详细信息。

转换 UI

大多数内置转换位于准备选项卡上的 “数据工作者 UI” 选项卡。可通过数据流视图访问 “连接” 和 “连接” 转换。使用下表预览这两个视图。

Join View

要连接两个数据集,请选择数据流中的第一个数据集,然后选择加入. 当您选择加入中,您将看到类似于以下图所示的结果。左侧和右侧数据集显示在左侧面板中。主面板将显示您的数据流,并添加了新连接的数据集。

当您选择配置配置连接,则会看到类似于下图所示的结果。您的联接配置显示在左侧面板中。您可以使用此面板选择连接的数据集名称、连接类型和要连接的列。主面板显示三个表格。前两个表格分别在左侧和右侧显示左侧和右侧数据集。在此表下,您可以预览连接的数据集。

请参阅加入了解更多信息。

Concatenate View

要连接两个数据集,请选择数据流中的第一个数据集,然后选择连接. 当您选择连接中,您将看到类似于以下图所示的结果。左侧和右侧数据集显示在左侧面板中。主面板将显示您的数据流,并添加了新连接的数据集。

当您选择配置配置串联时,您将看到类似于下图所示的结果。您的连接配置显示在左侧面板中。您可以使用此面板选择连接的数据集的名称,并选择在串联后删除重复项,然后添加列以指示源数据框。主面板显示三个表格。前两个表格分别在左侧和右侧显示左侧和右侧数据集。在此表下,您可以预览连接的数据集。

请参阅连接数据集了解更多信息。

Transforms in the Prepare Tab

要访问准备选项卡上,选择+旁边的数据流中的步骤,然后选择添加转换.

在存储库的准备选项卡上,您可以在Add.

您可以使用以前的步骤选项卡可按顺序查看和删除已添加的转换。

加入

您可以直接在数据流中加入数据框。连接两个数据集时,生成的连接数据集将显示在流中。数据工作者支持以下连接类型。

  • Left 外部— 包括左表中的所有行。如果左表行中连接的列的值与任何右表行值不匹配,则该行包含联接表中所有右表列的空值。

  • 左反— 包括左表中不包含连接列的右表中的值的行。

  • 左侧半— 对于满足连接语句中条件的所有相同行,包括左表中的单行。这将从左表中排除符合联接条件的重复行。

  • 右侧外部— 包括右表中的所有行。如果右表行中联接列的值与任何左表行值不匹配,则该行包含联接表中所有左表列的空值。

  • INNER— 包括左表和右表中包含连接列中匹配值的行。

  • 完全外部— 包括左表和右表中的所有行。如果任一表中连接列的行值不匹配,则在连接表中创建单独的行。如果某行不包含连接表中某列的值,则会为该列插入 null。

  • 笛卡尔十字架— 包括将第一个表中的每一行与第二个表中的每一行组合在一起的行。这是一个笛卡尔积联接中的表中的行。本产品的结果是左表的大小乘以右表的大小。因此,我们建议在非常大的数据集之间使用此连接时谨慎。

可使用以下过程连接两个数据框。

  1. Select+旁边的要加入的左侧数据框。您选择的第一个数据框始终是连接中的左表。

  2. Select加入.

  3. 选择正确的数据框。您选择的第二个数据框始终是连接中的正确表。

  4. Select配置配置连接。

  5. 为连接的数据集指定一个名称,使用名称字段中返回的子位置类型。

  6. Select联接类型.

  7. 从左表和右表中选择要连接的列。

  8. SelectApply在右侧预览连接的数据集。

  9. 要将连接的表添加到数据流中,请选择Add在右上角。

连接数据集

连接两个数据集:

  1. Select+旁边的左侧数据框旁边的。您选择的第一个数据框始终是连接中的左表。

  2. Select连接.

  3. 选择正确的数据框。您选择的第二个数据框始终是连接中的正确表。

  4. Select配置来配置连接。

  5. 为连接数据集指定一个名称,使用名称字段中返回的子位置类型。

  6. (可选)选中旁边的复选框连接后删除重复项删除重复的列。

  7. (可选)选中旁边的复选框添加列以指示源数据框如果要为新数据集中的每一列添加列源的指示符。

  8. SelectApply以预览新数据集。

  9. SelectAdd将新数据集添加到数据流中。

自定义变换

这些区域有:自定义变换组允许您使用 Pyspark、熊猫或 Pyspark (SQL) 来定义自定义转换。对于所有三个选项,您可以使用变量df以访问要应用转换的数据框。您不需要包含返回语句。Select预览以预览自定义变换的结果。SelectAdd将自定义转换添加到以前的步骤.

您可以使用import语句在自定义转换代码块中,如下所示:

  • Numpy 版本 1.19.0

  • 学习版本 0.23.2

  • Scipy 版本 1.5.4

  • 熊猫版本 1.0.3

  • Pyspark 3.0.0 版本

如果在代码块中包含打印语句,则在选择预览.

以下是说明如何使用自定义转换代码块的示例:

Pyspark

以下示例从时间戳中提取日期和时间。

from pyspark.sql.functions import from_unixtime, to_date, date_format df = df.withColumn('DATE_TIME', from_unixtime('TIMESTAMP')) df = df.withColumn( 'EVENT_DATE', to_date('DATE_TIME')).withColumn( 'EVENT_TIME', date_format('DATE_TIME', 'HH:mm:ss'))

熊猫

以下示例概述了要向其中添加转换的数据框。

df.info()

普希斯公园 (SQL)

以下创建一个包含五列的新数据框:名称farepclass幸存.

SELECT name, fare, pclass, survived FROM df

自定义公式

使用自定义公式使用 Spark SQL 表达式定义新列,以查询当前数据框中的数据。查询必须使用 Spark SQL 表达式的约定。

重要

自定义公式不支持名称中包含空格的列。您可以使用重命名列中的变换管理列转换组来删除列名称中的空格。您还可以添加熊猫 自定义变换类似于以下内容,以便在一个步骤中删除多个列中的空格。此示例更改名为A columnB columnA_columnB_column

df.rename(columns={"A column": "A_column", "B column": "B_column"})

您可以使用此转换对列执行操作,并按名称引用列。例如,假设当前数据框包含名为COL_aCOL_b,您可以使用以下操作生成输出列这是这两列的乘积,具有以下代码:

col_a * col_b

其他常见操作包括以下内容,假设数据框包含col_acol_b

  • 连接两列:concat(col_a, col_b)

  • 添加两列:col_a + col_b

  • 减去两列:col_a - col_b

  • 划分两列:col_a / col_b

  • 获取列的绝对值:abs(col_a)

有关更多信息,请参阅 。Spark 文档选择数据。

对分类进行编码

分类数据通常由有限数量的类别组成,其中每个类别都用一个字符串表示。例如,如果您有一个客户数据表,则表示某个人所在国家/地区的列是分类的。这些类别将是阿富汗、阿尔巴尼亚、阿尔及利亚等。分类数据可以是名义或者ORDINALITY. 序号类别有固有的顺序,名义类别没有。获得的最高学位 (高中, 单身汉, 硕士) 是序列类别的一个例子.

对类别数据进行编码是为类别创建数字表示的过程。例如,如果您的类别是 Dog 和 Cat,则可以将此信息编码为两个向量:[1,0]来表示狗,[0,1],表示猫。

编码序号类别时,可能需要将类别的自然顺序转换为编码。例如,您可以表示通过以下地图获得的最高度:{"High school": 1, "Bachelors": 2, "Masters":3}.

使用分类编码将字符串格式的类别数据编码为整数数组。

Data Wrangler 分类编码器为定义步骤时某一列中存在的所有类别创建编码。如果在启动 Data Wrangler 作业以便在时间处理数据集时向列添加了新类别t,此列是数据 Wrangler 类别编码转换的输入t-1,这些新类别被认为是丢失在数据牧民作业中。您选择的选项处理策略无效应用于这些缺失的值。这种情况可能发生的示例包括:

  • 使用 .flow 文件创建 Data Wrangler 作业来处理创建数据流后更新的数据集时。例如,您可以使用数据流定期处理每月的销售数据。如果销售数据每周更新,则可能会将新类别引入到定义编码类别步骤的列中。

  • 当您选择采样导入数据集时,某些类别可能会被遗漏在样本之外。

在这些情况下,这些新类别被视为数据牧师作业中的缺失值。

可以选择并配置ORDINALITY一热编码. 有关这些选项的更多信息,请参阅以下部分。

两个转换都会创建一个名为输出列名称. 指定此列的输出格式为输出样式

  • SelectVector来生成具有稀疏向量的单个列。

  • Select为每个类别创建一个列,其中包含一个指示符变量,以确定原始列中的文本是否包含与该类别相等的值。

序数编码

Select序数编码将类别编码为介于 0 和输入列您选择。

无效的移交策略:选择一种方法来处理无效值或缺失值。

  • 选择Skip如果你想省略缺少值的行。

  • 选择保持保留缺失值作为最后一个类别。

  • 选择错误如果您希望 Data Wrangler 在输入列.

  • 选择替换 NaN以替换缺少的 NaN。如果您的 ML 算法可以处理缺失值,则建议使用此选项。否则,此列表中的前三个选项可能会产生更好的结果。

一热编码

Select一热编码对于 来说为转换以使用独热编码。使用以下方法配置此转换:

  • 删除最后一个类别:如果True,最后一个类别在一热编码中没有相应的索引。当可能缺少值时,缺少的类别始终是最后一个,并将其设置为True意味着缺少值会导致全零向量。

  • 无效的移交策略:选择一种方法来处理无效值或缺失值。

    • 选择Skip如果你想省略缺少值的行。

    • 选择保持保留缺失值作为最后一个类别。

    • 选择错误如果您希望 Data Wrangler 在输入列.

  • 输入序号编码:如果输入向量包含序号编码数据,请选择此选项。此选项要求输入数据包含非负整数。如果True,输入i被编码为一个非零的向量ith 位置。

文本特征

使用功能文本转换组来检查字符串类型的列,并使用文本嵌入来对这些列进行特征化。

此功能组包含两个要素:字符统计信息Vectoration. 可以使用以下部分了解有关这些变换的更多信息。对于这两个选项,输入列必须包含文本数据(字符串类型)。

字符统计信息

使用字符统计数据为包含文本数据的列中的每一行生成统计信息。

这将计算每行的以下比率和计数,并创建一个新列来报告结果。使用输入列名称作为前缀和特定于比率或计数的后缀命名新列。

  • 字数:该行中的总字数。此输出列的后缀为-统计 _ 单词 _ 计数.

  • 字符数:该行中的总字符数。此输出列的后缀为-统计 _ 字符计数.

  • 上部比率:从 A 到 Z 之间的大写字符数除以列中的所有字符。此输出列的后缀为-状态 _ 资本比率.

  • 较低的比率:从 a 到 z 之间的小写字符数除以列中的所有字符。此输出列的后缀为-统计 _ 低比.

  • 数字比率:单行中的位数与输入列中数字总和的比率。此输出列的后缀为-状态 _ 数字 _ 比率.

  • 特殊字符比率:非字母数字(如 #$&%: @)字符与输入列中所有字符总和的比率。此输出列的后缀为-统计 _ 特殊 _ 比率.

Vectorize

文本嵌入涉及将单词或短语从词汇映射到实数矢量。使用 Data Wrangler 文本嵌入变换将文本数据标记化并将其矢量化为术语频率 — 反向文档频率 (TF-IDF) 向量。

当为一列文本数据计算 TF-IDF 时,每个句子中的每个单词都会转换为表示其语义重要性的实数。较高的数字与较少的单词相关联,这往往更有意义。

当您定义Vectoration变换步长时,计数矢量化器和 TF-IDF 方法是在定义此步骤时使用 Data Wrangler 中提供的数据进行定义的。运行 Data Wrangler 作业时,将使用这些相同的方法。

您可以使用以下方式配置此转换:

  • 输出列名称:此转换将创建一个带有文本嵌入的新列。使用此字段为此输出列指定名称。

  • 令牌化:标记器将句子转换为单词列表,或者Token.

    选择标准使用标记器,该标记器按空格分割并将每个单词转换为小写。例如,"Good dog"被标记为["good","dog"].

    选择Custom (自定义)以使用自定义标记器。如果选择Custom (自定义)中,您可以使用以下字段配置标记器:

    • 最短令牌长度:令牌有效的最小长度(以字符为单位)。默认值为 1。例如,如果指定3对于最小令牌长度,像a, at, in从标记化的句子中删除。

    • 正则表达式是否应该在间隙上分裂:如果选择,regex分裂的差距。否则,它会匹配令牌。默认值为 True

    • 正则表达式模式:定义标记化过程的正则表达式模式。默认值为 ' \\ s+'

    • 设置为小写:如果选择此选项,则在标记化之前将所有字符转换为小写字母。默认值为 True

    要了解更多信息,请参阅 Spark 文档令牌化.

  • Vectorizer:矢量化器将标记列表转换为稀疏数字向量。每个标记对应于向量中的索引,非零表示输入句子中存在令牌。您可以从两个矢量器选项中进行选择:计数哈希.

    • 计数向量允许过滤不经常或过于常见的令牌的自定义项。计数矢量化参数中支持的脚本编写选项如下:

      • 最短期频率:在每一行中,过滤频率较小的项(标记)。如果指定一个整数,则这是一个绝对阈值(包括)。如果指定介于 0(含)和 1 之间的分数,则阈值相对于总项计数。默认值为 1

      • 最低文档频率:必须包含术语(标记)的最小行数。如果指定一个整数,则这是一个绝对阈值(包括)。如果指定介于 0(含)和 1 之间的分数,则阈值相对于总项计数。默认值为 1

      • 最大文档频率:可以包含术语(标记)的最大文档数(行)。如果指定一个整数,则这是一个绝对阈值(包括)。如果指定介于 0(含)和 1 之间的分数,则阈值相对于总项计数。默认值为 0.999

      • 最大词汇容量:词汇表的最大大小。词汇表由列的所有行中的所有术语(标记)组成。默认值为 262144

      • 二进制输出:如果选择此选项,则矢量输出不包括项在文档中的外观次数,而是表示其外观的二进制指示符。默认值为 False

      要了解有关此选项的更多信息,请参阅 Spark 文档中的计数向量器.

    • 哈希计算速度更快。散列矢量化参数中包括以下内容:

      • 散列过程中的要素数:哈希矢量化器根据标记的哈希值将标记映射到矢量索引。此功能确定可能的哈希值的数量。较大的值会导致散列值之间的冲突较少,但维度较高的输出向量。

      要了解有关此选项的更多信息,请参阅 Spark 文档中的功能包含器

  • 应用 IDF:如果选择该选项,则应用 IDF 变换,该变换将术语频率与用于 TF-IDF 嵌入的标准反文档频率相乘。IDF 参数中支持的脚本编写选项如下:

    • 最低文档频率:必须包含术语(标记)的最小文档数(行)。如果计数向量化是所选向量器,我们建议保留默认值,并仅修改最小文档选项中的字段计数矢量化参数. 默认值为 5

  • 输出格式:每行的输出格式。

    • SelectVector来生成具有稀疏向量的单个列。

    • Select已拼合为每个类别创建一个列,其中包含一个指示符变量,以确定原始列中的文本是否包含与该类别相等的值。您只能选择拼合在Vectorizer设置为计数向量.

特性日期/时间

使用特性化日期/时间创建一个表示日期/时间字段的矢量嵌入。要使用此转换,您的日期/时间数据必须采用以下格式之一:

  • 描述日期/时间的字符串,例如"January 1st, 2020, 12:44pm".

  • Unix 时间戳。unix 时间戳描述自 1970 年 1/1/1970 以来的秒数、毫秒数、微秒数或纳秒数。

您可以选择推断日期时间格式并提供日期时间格式. 如果您提供日期/时间格式,则必须使用此Python 文档. 您为这两种配置选择的选项会影响操作速度和最终结果:

  • 最手动和计算速度最快的选项是指定日期时间格式并选择对于 来说为推断日期时间格式.

  • 为了减少体力劳动,您只需选择推断日期时间格式,而不是指定日期/时间格式。这也是一个计算速度快的操作;但是,假定输入列中遇到的第一个日期/时间格式是整个列的格式。因此,如果列中遇到其他格式,则最终输出中这些值为 NaN。因此,此选项可能会导致未解析的字符串。

  • 如果您未指定格式,并选择对于 来说为推断日期时间格式,您可以获得最强大的结果。解析所有有效的日期/时间字符串。但是,此操作可能比此列表中的前两个选项慢一个数量级。

当您使用此转换时,您可以指定输入列,其中包含以上列出的格式之一的日期/时间数据。转换会创建一个名为输出列名称. 输出列的格式取决于您使用以下内容的配置:

  • Vector:输出具有稀疏向量的单个列。

  • :为每个要素创建一个新列。例如,如果输出包含年、月和日,则会为年、月和日创建三个单独的列。

此外,您必须选择嵌入模式. 对于线性模型和深度网络,循环推荐使用 。对于基于树的算法,ORDINALITY推荐使用 。

格式字符串

这些区域有:格式字符串转换包含标准字符串格式化操作。例如,您可以使用这些操作删除特殊字符、规范化字符串长度和更新字符串大小写。

此功能组包含以下变换。所有转换都会返回输入列,然后将结果添加到新的输出列中。

名称 函数
左侧填充

将字符串左键填充给定的Fill Columpe到给定的width. 如果字符串长度超过width,则返回值将缩短为widthcharacters.

右侧填充

右键填充给定的字符串Fill Columpe添加到给定的width. 如果字符串长度超过width,则返回值将缩短为widthcharacters.

中心(两侧垫)

中心填充字符串(在字符串的两侧添加填充)与给定的Fill Columpe添加到给定的width. 如果字符串长度超过width,则返回值将缩短为widthcharacters.

预先加零

用零左填充数字字符串,直到给定width. 如果字符串长度超过width,则返回值将缩短为widthcharacters.

左侧和右侧剥离

返回删除前导字符和尾随字符的字符串副本。

从左侧删除字符

返回删除前导字符的字符串副本。

从右侧删除字符

返回删除尾随字符的字符串副本。

小写

将文本中的所有字母转换为小写。

大写

将文本中的所有字母转换为大写。

大写

将每个句子中的第一个字母大写。

交换大小写 将所有大写字符转换为小写字符,并将所有小写字符转换为给定字符串的大写字符,然后返回它。
添加前缀或后缀

为字符串列添加前缀和后缀。您必须指定至少一个前缀后缀.

删除符号

从字符串中删除给定符号。所有列出的字符都将被删除。默认值为空格。

句柄异常值

机器学习模型对要素值的分布和范围很敏感。异常值或罕见值可能会对模型精度产生负面影响,并导致更长的训练时间。使用此要素组可检测和更新数据集中的异常值。

当您定义句柄异常值变换步长时,定义此步骤时,将在 Data Wrangler 中的可用数据上生成用于检测异常值的统计数据。运行 Data Wrangler 作业时使用这些统计信息。

使用以下部分可以了解有关此组包含的转换的更多信息。您可以指定输出名称,并且其中的每个变换都会生成一个带有生成数据的输出列。

鲁棒的标准差数值异常值

此变换使用对异常值可靠的统计数据来检测和修复数值要素中的异常值。

您必须定义上分位数下分位数,它们在用于计算异常值的统计数据中使用。您还需要指定标准偏差的值必须与被视为异常值的均值变化。例如,如果您为标准偏差,则值必须从均值下降超过 3 个标准差才能被视为异常值。

这些区域有:修复方法是用于在检测到异常值时处理异常值的方法。可从以下选项中进行选择:

  • 剪辑:使用此选项可将异常值裁剪为相应的异常值检测界限。

  • Remove:使用此选项可从数据框中删除具有异常值的行。

  • 失效:使用此选项可用无效值替换异常值。

标准差数值异常值

此变换使用均值和标准差检测并修复数值要素中的异常值。

您可以指定标准偏差值必须与被视为异常值的均值变化。例如,如果您为标准偏差,则值必须从均值下降超过 3 个标准差才能被视为异常值。

这些区域有:修复方法是用于在检测到异常值时处理异常值的方法。可从以下选项中进行选择:

  • 剪辑:使用此选项可将异常值裁剪为相应的异常值检测界限。

  • Remove:使用此选项可从数据框中删除具有异常值的行。

  • 失效:使用此选项可用无效值替换异常值。

分位数值异常值

使用此变换可以使用分位数检测和修复数值要素中的异常值。您可以定义上分位数下分位数,并且所有高于或低于这些分位值的值分别被视为异常值。

这些区域有:修复方法是用于在检测到异常值时处理异常值的方法。可从以下选项中进行选择:

  • 剪辑:使用此选项可将异常值裁剪为相应的异常值检测界限。

  • Remove:使用此选项可从数据框中删除具有异常值的行。

  • 失效:使用此选项可用无效值替换异常值。

最小-最大数值异常值

此变换使用上限和下限阈值检测并修复数值要素中的异常值。如果您知道去标记异常值的阈值,请使用此方法。

您可以指定上限下限,并且如果值分别高于或低于这些阈值,则将其视为异常值。

这些区域有:修复方法是用于在检测到异常值时处理异常值的方法。可从以下选项中进行选择:

  • 剪辑:使用此选项可将异常值裁剪为相应的异常值检测界限。

  • Remove:使用此选项可从数据框中删除具有异常值的行。

  • 失效:使用此选项可用无效值替换异常值。

替换稀有

当您使用替换罕见转换时,您可以指定阈值,Data Wrangler 将查找满足该阈值的所有值,并将它们替换为您指定的字符串。例如,您可能希望使用此转换将列中的所有异常值分类为 “其他” 类别。

  • 替换字符串:用来替换异常值的字符串。

  • 绝对阈值:如果实例数量小于或等于此绝对阈值,则类别很少。

  • 分数阈值:如果实例数小于或等于此分数阈值乘以行数,则类别很少。

  • 最大常用类别:操作后保留的最大不罕见类别。如果阈值未过滤足够的类别,那么外观次数最多的类别将被归类为不罕见。如果设置为 0(默认值),则类别数量没有硬限制。

处理缺失值

缺少值是机器学习数据集中常见的情况。在某些情况下,最好使用计算值(例如平均值或明确公用值)来填补缺失的数据。您可以使用处理缺失值转换组。此组包含以下转换。

缺少 Fill

使用缺少 Fill转换来替换缺失的值Fill 值你定义的。

缺少模拟

使用缺少模拟转换来创建一个新列,其中包含在输入类别和数值数据中找到缺少值的插入值。配置取决于您的数据类型。使用以下方法配置此转换:

  • 估算策略:用于确定要估算的新值的策略。

    对于数值数据,选定的统计量是根据当前值计算的,并用作所有缺失值的推算值。这些选项为MEANmedian.

    对于类别数据,可以选择将最常用值,也可以定义要插入的自定义字符串。

添加缺失指示器

使用添加缺失的指示器转换来创建一个新的指标列,其中包含一个布尔值"false"如果一行包含一个值,"true"如果一行包含缺失的值。

丢失

使用丢失选项删除包含缺少值的行输入列.

管理列

您可以使用以下转换快速更新和管理数据集中的列:

名称 函数
删除列 删除列。
重复列 复制列。
重命名列 重命名列。
移动列

在数据集中移动列的位置。选择将列移动到数据集的开头或结尾、引用列之前或之后,或移动到特定索引。

管理行

使用此转换组可快速对行执行排序和洗牌操作。此组包含以下内容:

  • 排序:按给定列对整个数据框进行排序。选中 旁边的复选框升序;否则,取消选中该复选框并使用降序排序。

  • 随机排序:随机洗牌数据集中的所有行。

管理向量

使用此变换组可以组合或拼合向量列。此组包含以下转换。

  • 程序集:使用此转换可将 Spark 向量和数字数据合并为单个列。例如,您可以组合三列:两列包含数字数据,一列包含矢量。添加您想要合并的所有列输入列并指定输出列名称用于组合数据。

  • Flatten:使用此转换可以拼合包含矢量数据的单个列。输入列必须包含 PySpark 向量或类似数组的对象。您可以通过指定创建的列数目检测输出编号的方法. 例如,如果选择第一个向量的长度,则列中的第一个有效向量或数组中的元素数量决定了创建的输出列的数量。包含太多项目的所有其他输入向量将被截断。项目太少的输入将填充 NaNs。

    您还可以指定输出前缀,它用作每个输出列的前缀。

流程数值

使用流程数值要素组来处理数字数据。此组中的每个标量都是使用 Spark 库定义的。支持以下标量:

  • 标准标准:通过从每个值中减去均值并按单位方差进行缩放来标准化输入列。要了解更多信息,请参阅 Spark 文档标准扩展器.

  • 强大的缩放器:使用对于异常值可靠的统计数据缩放输入列。要了解更多信息,请参阅 Spark 文档鲁棒规模器.

  • 最小最大缩放器:通过将每个要素缩放到给定范围来转换输入列。要了解更多信息,请参阅 Spark 文档最小最大缩放器.

  • 最大绝对缩放器:通过将每个值除以最大绝对值来缩放输入列。要了解更多信息,请参阅 Spark 文档最大限度规模器.

搜索和编辑

使用此部分可以搜索和编辑字符串中的特定模式。例如,您可以查找和更新句子或文档中的字符串,按分隔符拆分字符串,以及查找特定字符串的出现次数。

以下转换在搜索和编辑. 所有转换都会返回输入列并将结果添加到新的输出列中。

名称 函数

查找子字符串

返回首次出现的SBSTRING(可选),开始和结束搜索启动End

查找子字符串(从右开始)

返回最后一个匹配项的索引SBSTRING(可选)开始和结束搜索启动End

匹配前缀

如果字符串包含给定的模式. 模式可以是字符序列或正则表达式。或者,您可以使模式区分大小写。

查找所有匹配项

返回一个包含给定模式的所有出现次数的数组。模式可以是字符序列或正则表达式。

使用正则表达式提取

返回与给定正则表达式模式匹配的字符串。

在分隔符之间提取

返回一个字符串,其中包含左分隔符右分隔符.

从位置提取

返回一个字符串,从起始位置,该字符串包含直到开始位置的所有字符加上长度.

查找和替换子字符串

返回一个字符串,其中包含给定模式(正则表达式)替换为替换字符串.

在分隔符之间替换

返回一个字符串,其中子字符串在左分隔符和最后一次出现右分隔符替换为替换字符串. 如果未找到匹配项,则不会替换任何内容。

从位置替换

返回一个字符串,其子字符串位于起始位置起始位置Enter长度替换为替换字符串. 如果起始位置Enter长度大于替换字符串的长度,则输出包含....

将正则表达式转换为缺少

将字符串转换为None如果无效,并返回结果。有效性是用正则表达式定义的模式.

按分隔符拆分字符串

返回输入字符串中的字符串数组,按分隔符,最多最大分割数(可选)。分隔符默认为空格。

将值解析为类型

使用此转换可将列转换为新类型。支持的数据 Wrangler 数据类型包括:

  • 长整型

  • Float

  • Boolean

  • 日期,格式为 Dd-mm-yyyy,分别表示日、月和年。

  • String

验证字符串

使用验证字符串转换来创建一个新列,该列指示一行文本数据满足指定条件。例如,您可以使用验证字符串转换来验证字符串是否只包含小写字符。以下转换在验证字符串.

以下变换包含在此转换组中。如果转换输出布尔值,True表示为1False表示为0.

名称 函数

字符串长度

返回值True如果字符串长度等于指定的长度。否则返回 False

从 开始

返回值True如果一个字符串开始将一个指定的前缀。否则返回 False

Ends with

返回值True如果字符串长度等于指定的长度。否则返回 False

是字母数字

返回值True如果字符串只包含数字和字母。否则返回 False

是阿尔法(字母)

返回值True如果一个字符串只包含字母。否则返回 False

是数字

返回值True如果一个字符串只包含数字。否则返回 False

是空格

返回值True如果字符串只包含数字和字母。否则返回 False

是标题

返回值True如果一个字符串包含任何空格。否则返回 False

为小写

返回值True如果一个字符串只包含小写字母。否则返回 False

大写

返回值True如果一个字符串只包含大写字母。否则返回 False

是数值

返回值True如果一个字符串只包含数字。否则返回 False

为十进制

返回值True如果一个字符串只包含十进制数字。否则返回 False