DSE Graph Loaderでのtransformの使用方法
すべてのデータ入力では、ユーザー提供の機能に従って、入力データを再構築、操作、または切り詰めるための任意のユーザー変換をサポートしています。
各データ入力のデータ・レコードは、ドキュメント構造またはネストされたマップです。変換は、ネストされたマップなどに作用し、ネストされたマップを返します。提供された変換機能はスレッド・セーフである必要があり、そうでない場合は、データ・ローダーの動作が未定義になります。
手順
-
gender
のカラム値を変換して、読み込み前に小文字に変換します。最初に入力ファイルが識別されます。入力ファイルを識別する行の下に、transform行をリストしてください。
inputfiledir = '/tmp/TEXT/'
authorInput = File.text(inputfiledir + "author.dat").delimiter("|").header('name', 'gender')
authorInput = authorInput.transform { it['gender'] = it['gender'].toLowerCase(); it }
変換は、ネストされたマップauthorInput
の各gender
値に対してtoLowerCase()
メソッドを実行するGroovyスクリプトで、グラフのgender
値が小文字のみになります。以下は、不慣れなユーザー向けの簡単なGroovyについての説明です。
-
transformは、マッピング・スクリプトの本文にも配置できます。入力ファイルは指定されたままですが、transformは読み込みステートメントの下にリストされます。
inputfiledir = '/tmp/TEXT/'
authorInput = File.text(inputfiledir + "author.dat").delimiter("|").header('name', 'gender')
//(定義済みインラインとして)いずれかのマッパーを使用して読み込むデータ・ソースを指定します
load(authorInput).asVertices {
label "author"
key "name"
}
authorInput = authorInput.transform { it['gender'] = it['gender'].toLowerCase(); it }