【アップデート】AWS Glue DataBrewで論理条件を使えるようになりました

2021.08.18

どーもsutoです。

AWS Glue DataBrewのアップデートでIF、AND、OR、CASE whenといった論理関数をサポートするようになりました。

これで複数の分岐条件に基づいてTrue or False判定ができたり、3パターン以上のフラグ値に数値変換できたりと、SQLで基本的に可能だったデータ加工がDataBrewでもようやくできるようになりましたね。

Conditionsの使い方

本記事で使用するプロジェクトとデータセットは、以前の記事で利用したものと同じ「擬似個人情報生成データ」のサンプルデータとなります。

IFを使った例

電話番号の列「phone」またはメールアドレスの列「email」のどちらかに1つでも空白(null)がある場合は"True"、そうでない場合は"False"とするnullを見つける判定列を作成してみます。

  • プロジェクトのメニュー「CONDITIONS」から「IF」を選択

  • Matching conditionsに「Match any condition (OR)」を選択
  • 条件に以下を入力
    • Source:「Value of」「phone」
    • Logical condition:Is missing
  • Add Another OR Conditionsをクリック
  • 追加されたOR条件に以下を入力
    • Source:「Value of」「email」
    • Logical condition:Is missing
  • THENのFlag result value asで「True or False」を選択

  • Destination columnに結果の値を格納する新規列(null_flag)の名前を入力して「適用」をクリック

CASEを使った例

性別(男or女)を格納する列「gender」に対して、男ならば"1"、女ならば"2"、それ以外(nullなど)ならば"0"とする条件で数値化してみます。

  • プロジェクトのメニュー「CONDITIONS」から「CASE」を選択

  • ケース1の条件に以下を入力
    • Source:「Value of」「gender」
    • Logical condition:Is exactly
    • Enter a value(Enter custom value):男
    • Result value(Enter custom value):1
  • 別のCASEの条件を追加をクリックし、ケース2の条件に以下を入力
    • Source:「Value of」「gender」
    • Logical condition:Is exactly
    • Enter a value(Enter custom value):女
    • Result value(Enter custom value):2
  • デフォルトの条件に以下を入力
    • 結果(Enter custom value):0

  • Destination columnに結果の値を格納する新規列の名前(gender_flag)を入力して「適用」をクリック

まとめ

GA当初からあって欲しいなと思っていた機能がやっとサポートされたという印象です。

DataBrewも少しずつアップデートが出てきてどんどん使える機能や関数が増えていくといいですね。