メイン コンテンツをスキップする 補完的コンテンツへスキップ

Apache Spark BatchのtJavaRowプロパティ

これらのプロパティは、Spark Batchジョブのフレームワークで実行されているtJavaRowを設定するために使われます。

Spark BatchtJavaRowコンポーネントは、カスタムコードファミリーに属しています。

このフレームワーク内のコンポーネントは、ビッグデータ対応のTalend 製品すべて、およびTalend Data Fabricで使用できます。

基本設定

[Schema] (スキーマ)[Edit Schema] (スキーマを編集)

スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。

 

[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。

 

[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。

再使用するスキーマに整数またはファンクションのデフォルト値が指定されている場合は、これらのデフォルト値を引用符で囲まないようにご注意ください。引用符で囲まれている場合は手動で削除します。

詳細は、Talend Studioユーザーガイドでテーブルスキーマに関連する説明をご覧ください。

 

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマを表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

ジョブで接続している先行コンポーネントからスキーマを取得するためには、[Sync columns] (カラムを同期)をクリックします。

このコンポーネントの入力スキーマと出力スキーマは異なる場合があります。

[Map type] (マップタイプ)

書き込む必要のあるマップ変換の種類を選択します。これでコンポーネントは、メソッドを自動的に選択し、カスタムコードで使用する変数を宣言できます。

使用できる種類は次のとおりです。
  • [Map] (マップ): 各入力レコードに対して返される出力レコードは1つだけです。SparkのPairFunctionメソッドが使用されます。

  • FlatMap: 各入力レコードに対して0以上の出力レコードが返されます。SparkのFlatMapFunctionメソッドが使用されます。

これらのメソッドについては、https://spark.apache.org/docs/latest/api/java/index.html (英語のみ)でJava APIに関するApache Sparkのドキュメンテーションをご覧ください。

[Generate code] (コードの生成)

[Code] (コード)フィールド内にコードを自動生成するには、このボタンをクリックして、入力スキーマのカラムを出力スキーマのカラムにマッピングします。この生成によって、スキーマの内容は何も変更されません。

生成されたサンプルコードは、事前定義されたどの変数が入力および出力RDDに対するものであるか、また、それらの変数をどう使用したらよいかを示します。

[Code] (コード)

[Map type] (マップの種類) ドロップダウンリストから選択したメソッドのカスタムBodyを書き込みます。入力スキーマと出力スキーマを使用して、入力および出力RDDレコードのカラムを管理する必要があります。このカスタムコードは、RDDレコード内で行ごとに適用されます。

たとえば、入力スキーマにuserカラムが含まれていれば、input.user変数を使用して各入力レコードのuserカラムを取得する必要があります。

カスタムコードの書き込みに使用できる変数については、このフィールドに表示されるデフォルトコメントをご覧ください。

詳細設定

[Import] (インポート)

インポートするJavaコード、および必要に応じて[Basic settings] (基本設定)ビューの[Code] (コード)フィールドで使用されている外部ライブラリーを入力します。

グローバル変数

グローバル変数

ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。

Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。

フィールドまたは式に変数を入れるには、Ctrl + スペースを押して変数リストにアクセスし、リストから使用する変数を選択します。

変数の詳細は、Talend Studioユーザーガイドをご覧ください。

グローバル変数(tFileRowCountCOUNTなど)を[Code] (コード)ボックスに入力するには、コード全体、つまり、((Integer)globalMap.get("tFileRowCount_COUNT"))を手動で入力する必要があります。

使用方法

使用ルール

このコンポーネントは、中間ステップとして使用されます。

このコンポーネントは、所属するSpark Batchのコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。

特に明記していない限り、このドキュメントのシナリオでは、標準ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):
    • Google Dataprocを使用している場合、[Spark configuration] (Spark設定)タブの[Google Storage staging bucket] (Google Storageステージングバケット)フィールドにバケットを指定します。

    • HDInsightを使用している場合、[Spark configuration] (Spark設定)タブの[Windows Azure Storage configuration] (Windows Azure Storage設定)エリアでジョブのデプロイメントに使用するブロブを指定します。

    • Altusを使用する場合は、[Spark configuration] (Spark設定)タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。
    • Quboleを使用する場合は、ジョブにtS3Configurationを追加し、QuboleでS3システム内に実際のビジネスデータを書き込みます。tS3Configurationを使用しないと、このビジネスデータはQubole HDFSシステムに書き込まれ、クラスターをシャットダウンすると破棄されます。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

  • [Standalone mode] (スタンドアロンモード): クラスターで使われているファイルシステム(tHDFSConfiguration Apache Spark BatchtS3Configuration Apache Spark Batchなど)に対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。

[Limitation] (制限事項)

SparkとJava言語の知識が必要です。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。