注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このセクションでは、Java トランスフォームで高度な設定オプションを使用する方法について説明します。
データの新鮮さを確保したりコストを制限したりするために、ジョブの実行時間を制限することが望ましい場合があります。たとえば、ジョブが外部サービスとやり取りしていて応答がなくなった場合、実行時間に制限を設けることで、ジョブが完了しない可能性がある状況に対処できます。
Code Repositories では、以下のように MaxAllowedDuration
および Compute
デコレータを使用してジョブの実行時間を制限できます:
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
package myproject.datasets; import com.palantir.transforms.lang.java.api.*; import java.time.Duration; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Row; public final class FilterTransform { @MaxAllowedDuration(value = "PT2H") @Compute public void myComputeFunction( @Input("/examples/students_hair_eye_color") FoundryInput myInput, @Output("/examples/students_hair_eye_color_filtered") FoundryOutput myOutput) { // 入力データセットをDataFrameとして読み込み Dataset<Row> inputDf = myInput.asDataFrame().read(); // "eye" カラムが "Brown" の行のみをフィルタリング myOutput.getDataFrameWriter(inputDf.filter("eye = 'Brown'")).write(); } }