2017-10-16 18 views
-1

Scalaでキーと値の配列のペアを作成する方法を教えてください。これは私が値の代わりに配列を必要とすることを意味します。キー/値 - 配列のペアを作成するScala/Spark

val newRdd1 = rdd1.flatMap(x=>x.split(" ")) 
    .map({case (key, Array(String)) => Array(String) }) 
+1

ようこそStackOverflow!人々が手助けするために必要なすべての情報を提供していることを確認するには、https://stackoverflow.com/help/askingを読んでください。特に - 何を試しましたか?あなたはどこにいるのですか?あなたはオンラインで回答を探しましたか? –

答えて

-1

map()を使用して実現できます。プレーンなスケーラプログラムまたはScala-in-SparkContextのいずれの場合も同様です。

例は、文字列のリストを持っている:

var sRec = List("key1,a1,a2,a3", "key2,b1,b2,b3", "key3,c1,c2,c3") 

あなたはそれがキー/値(文字列の配列)に変換&分割することができますキーを想定して使用して、0番目の位置にあります。

sRec.map(x => (x.split(",")(0), Array(x.split(",")(1), x.split(",")(2), x.split(",")(3)))). 
     foreach(println) 

(key1,[Ljava.lang.String;@7a81197d) 
(key2,[Ljava.lang.String;@5ca881b5) 
(key3,[Ljava.lang.String;@24d46ca6) 

あなたはキーによって特定の配列要素を読み込みたい場合:

sRec.map(x => (x.split(",")(0),Array(x.split(",")(1), x.split(",")(2), x.split(",")(3)))). 
     map(x => (x._1, x._2(0))).foreach(println) 

出力:

(key1,a1) 
(key2,b1) 
(key3,c1) 
関連する問題