

# データセット内のキーのフィルタリング
<a name="transforms-filter"></a>

*フィルター*変換を使用して、正規表現に基づいて入力データセットのレコードをフィルタリングすることで、新しいデータセットを作成できます。フィルター条件を満たさない行は、出力から削除されます。
+ 文字列のデータ型の場合、キー値と指定された文字列が一致する行をフィルタリングできます。
+ 数値のデータ型の場合、比較演算子 `<`、`>`、`=`、`!=`、`<=`、`>=` を使用してキー値と指定された値を比較することで、行をフィルタリングできます。

複数のフィルター条件を指定した場合、デフォルトでは `AND` 演算子を使用して結果が結合されますが、代わりに `OR` を使用することもできます。

*フィルター*変換では、大文字と小文字が区別されます。大文字と小文字を区別しないプロパティキー名が必要な場合は、*ApplyMapping* 変換を親ノードとして追加します。

**フィルター変換ノードをジョブ図に追加するには**

1. (オプション) リソースパネルを開いて、**[フィルター]** を選択し、必要に応じてジョブ図に新しい変換を追加します。

1. [**Node properties**] (ノードのプロパティ) タブで、ジョブ図のノードの名前を入力します。ノードの親がまだ選択されていない場合は、[**Node parents**] (ノードの親) リストから、変換の入力ソースとして使用するノードを選択します。

1. [**Transform**] (変換) タブを選択します。

1. [**Global AND**] または [**Global OR**] を選択します。これにより、複数のフィルター条件の結合方法が決定します。すべての条件は、`AND` または `OR` オペレーションで結合されます。フィルター条件が 1 つしかない場合は、どちらかを選択できます。

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 ロールを指定するとすぐに請求が開始します。