2017-01-24 13 views
0

のリストにデータフレームの列の変換:は、私が持っているタプル

val DF1 = sparkSession.sql("select col1,col2,col3 from table"); 
val tupleList = DF1.select("col1","col2").rdd.map(r => (r(0),r(1))).collect() 

tupleList.foreach(x=> x.productIterator.foreach(println)) 

しかし、私は、出力のすべてのタプルを得ることはありません。問題はどこですか?

col1 col2 
AA CCC 
AA BBB 
DD CCC 
AB BBB 
Others BBB 
GG ALL 
EE ALL 
Others ALL 
ALL BBB 
NU FFF 
NU Others 
Others Others 
C FFF 

私が手出力は次のようになります。 CCC AA BBB AA Others AA Others DD ALL Others ALL GG ALL ALL

+0

あなたは例のデータと予想される出力を共有することができますか? – mtoto

+0

あなたの投稿に編集してください – mtoto

+0

不思議になる前に、 'tuple.productIterator.foreach(println)'があなたに与えるものをチェックしてください。 – Psidom

答えて

6
scala> val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) 
scala> val df1 = hiveContext.sql("select id, name from class_db.students") 
scala> df1.show() 
+----+-------+ 
| id| name| 
+----+-------+ 
|1001| John| 
|1002|Michael| 
+----+-------+ 

scala> df1.select("id", "name").rdd.map(x => (x.get(0), x.get(1))).collect() 
res3: Array[(Any, Any)] = Array((1001,John), (1002,Michael)) 
+0

たぶんproseを追加すると '' DataFrame'を 'RDD'に変換してタプルにマッピングします。" – javadba

関連する問題