2017-12-21 9 views
0

を定義するために、私はHDFSデータを読みたいが、データがsaveAsObject[(String,Int,SparseVector)]saveAsObject[(Int,String,Int)]として保存することができるなどScalaの方法objectFile [タイプ](パス)

だから、私に"String,Int,SparseVector"などのようなコマンドラインパラメータを渡したいです求人:​​

enter code heretypeを入手する方法saveAsObject[type]のコマンドライン引数から?

object Test2 { 
    def main(args: Array[String]): Unit = { 
    val conf=new org.apache.spark.SparkConf() 
    val sc = new org.apache.spark.SparkContext(conf) 
    var fmt = "Int,String,SparseVector" 
    if(args.size!=0){fmt=args(0)} 
    var fmt_arr=fmt.split(",") 
    type data_type=(matchClass(fmt_arr(0)),matchClass(fmt_arr(1)),matchClass(fmt_arr(2))) 
    val data = sc.objectFile[data_type]("") 
} 

def matchClass(str:String)={ 
    str match { 
    case "String" => String 
    case "Int" => Int 
    case "SparseVector" => SparseVector 
    case _ => throw new RuntimeException("unsupported type") 
    } 
} 
} 
+0

質問を再フォーマットし、試したコードを追加してください。 – AndreyF

答えて

0

すべての設定エントリは、いわゆるapplication.confファイルに含めることができます。あなたはスパークが提出やるときには、この設定ファイルを読み込むことができ

https://github.com/lightbend/config

! application.confファイルをアプリケーションにロードする方法の例をいくつか見てみましょう。このメカニズムは、Sparkアプリケーションでも同じでなければなりません!

https://github.com/joesan/plant-simulator/blob/master/app/com/inland24/plantsim/config/AppConfig.scala

関連する問題