2017-03-29 19 views
-5

2つのテーブルを結合してデータを指定します。私は ヴァル・データ= joinDataRdd.map(X =>(x._1、x._2._1.split( "")(3)))値splitは(String、String、String、String、String)のメンバーではありません

を次取得しようとしています

joinDataRdd.take(5).foreach(println) 
(41234,((102921,249,2,109.94,54.97),(2014-04-04 00:00:00.0,3182,PENDING_PAYMENT))) 
(65722,((164249,365,2,119.98,59.99),(2014-05-23 00:00:00.0,4077,COMPLETE))) 
(65722,((164250,730,5,400.0,80.0),(2014-05-23 00:00:00.0,4077,COMPLETE))) 
(65722,((164251,1004,1,399.98,399.98),(2014-05-23 00:00:00.0,4077,COMPLETE))) 
(65722,((164252,627,5,199.95,39.99),(2014-05-23 00:00:00.0,4077,COMPLETE))) 

それはエラーを投げています: 値分割をあなたはそれがなぜエラーメッセージですので、タプルを分割しようとしている(文字列、列、列、列、列)

答えて

1
val data = joinDataRdd.map(x=>(x._1,x._2._1._1.split(",")(3))) 

のメンバーではありません。与えられた位置x._2._1, (41234、(102921,249,2109.94,54.97)、(2014-04-04 00:00:00.03182、PENDING_PAYMENT)))で強調表示されたデータが結果です。ですからタプルの内部を掘り下げるために探しているなら、あなたは1つのポジションを進める必要があります。

0

値が既にタプルにあるように見えるので、文字列を分割する必要はありません。あなたが探しているのは何ですか?

val data = joinDataRdd.map(x=>(x._1,x._2._1._4)) 

+1

これは配列ではなくタプルなので、 'x._2._1._4'です –

+0

ありがとう、私は答えを編集します – Harald

+0

ありがとう、Cyrille Corpet – Kumar

関連する問題