

# 筛选数据集中的键
<a name="transforms-filter"></a>

使用 *Filter* 转换基于正则表达式从输入数据集中筛选记录，从而创建新记录。不满足筛选条件的行将从输出中删除。
+ 对于字符串数据类型，您可以筛选键值与指定字符串匹配的行。
+ 对于数值数据类型，您可以通过使用比较运算符 `<`、`>`、`=`、`!=`、`<=` 和 `>=`，将键值与指定值进行比较来筛选行。

如果您指定多个筛选条件，则默认使用 `AND` 运算符整合结果，但您可以改为选择 `OR`。

*Filter* 转换区分大小写。如果您需要不区分大小写的属性键名称，则将 *ApplyMapping* 转换添加为父节点。

**将 Filter 转换节点添加到任务图**

1. （可选）打开资源面板，然后选择**筛选器**将新转换添加到作业图（如果需要）。

1. 在 **Node properties (节点属性)** 选项卡上，输入任务图中节点的名称。如果尚未选择父节点，请从 **Node parents (父节点)** 列表中选择一个节点，用作转换的输入源。

1. 选择 **Transform (转换)** 选项卡。

1. 选择 **Global AND** 或者 **Global OR**。这将确定多个筛选条件的组合方式。所有条件都使用 `AND` 或者 `OR` 运算符。如果您只有一个筛选条件，则可以选择其中的任意一个。

1. 选择 **Filter condition (筛选条件)** 部分中的 **Add condition (添加条件)** 添加筛选条件。

   在 **Key (键)** 字段中，从数据集中选择属性键名称。在 **Operation (运算符)** 字段中，选择比较运算符。在 **Value (值)** 字段中，输入比较值。下面是一些筛选条件示例。
   + `year >= 2018`
   + `State matches 'CA*'`

   筛选字符串值时，请确保比较值使用与任务属性（Python 或 Scala）中选择的脚本语言相匹配的正则表达式格式。

1. 根据需要添加额外的筛选条件。

1. （可选）配置转换节点属性后，您可以选择节点详细信息面板中的 **Output schema (输出架构)** 选项卡，查看数据的修改架构。当您首次为任务中的任何节点选择此选项卡时，系统会提示您提供 IAM 角色以访问数据。如果您尚未在 **Job details (任务详细信息)** 选项卡上指定 IAM 角色，系统会提示您在此处输入 IAM 角色。

1. （可选）配置节点属性和转换属性后，您可以选择节点详细信息窗格中的 **Data preview (数据预览)** 选项卡来预览已修改的数据集。当您首次为任务中的任何节点选择此选项卡时，系统会提示您提供 IAM 角色以访问数据。使用此功能会产生相关费用，并且一旦您提供 IAM 角色，则会立即开始计费。