HDFSでのスパークUDF上のファイルを読みます

特定のシナリオの下では、我々はUDFは、ビジネスロジックを実装書き込みは、設定ファイルを読みに行く必要があるかもしれません。

時間のほとんどは、我々は、HDFSパスの下に、このファイルをアップロードして、HDFS APIでファイルを読みますが、注意します。

  データ処理時間よりも大きい、特に、(一度だけ場合にクラスローダーを読み取る)は、好ましくは、静的コードブロックに配置されたUDFファイル部分を読み出し、それ以外の場合は不必要に繰り返し読み取ります次のようにオーバーヘッドも使命は、サンプルコードを失敗します。

 

パッケージcn.com.dtmobile.udf。

輸入java.util.HashMapを; 

輸入org.apache.spark.sql.api.java.UDF2。

輸入cn.com.dtmobile.util.HdfsUtil; 

パブリック クラス CalculateRsrpが実装 UDF2 <ダブル、文字列、ダブルを> { 

    プライベート 静的 最終 長いのserialVersionUID = 1L 

    プライベート 静的 HashMapの<文字列、ダブル> paramteres = nullを静的{ 
        paramteres = HdfsUtil.readHdfsFile( "ファイルの場所" ); 
    } 
    
    @Override 
    公衆ダブルコール(二重T1、T2 String)をスロー例外{ 

        // 処理ロジック
        
        リターン ヌル; 
    } 

}

 

おすすめ

転載: www.cnblogs.com/dtmobile-ksw/p/11468557.html