2016-07-19 69 views
0

火花1.6,我試圖數組保存到一個蜂房表myTable由兩列,每列array<double>類型的:陣列<double>星火寫專欄蜂巢表

val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 
import sqlContext.implicits._ 

val x = Array(1.0,2.0,3.0,4.0) 
val y = Array(-1.0,-2.0,-3.0,-4.0) 

val mySeq = Seq(x,y) 
val df = sc.parallelize(mySeq).toDF("x","y") 
df.write.insertInto("myTable") 

但後來我得到的消息:

error: value toDF is not a member of org.apache.spark.rdd.RDD[Array[Double]] 
       val df = sc.parallelize(mySeq).toDF("x","y") 

什麼是做這個簡單任務的正確方法?

回答

0

我假設你要爲這個樣子的實際結構: X | Y 1.0 | -1.0 2.0 | -2.0 3.0 | -3.0 4.0 | -4.0

對於本你想要的代碼是這樣的:

val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) 
import sqlContext.implicits._ 

val x = Array(1.0,2.0,3.0,4.0) 
val y = Array(-1.0,-2.0,-3.0,-4.0) 

val mySeq = x.zip(y) 
val df = sc.parallelize(mySeq).toDF("x","y") 
df.write.insertInto("myTable") 

本質上,你需要像對象的行集合(即:Array [Row])。最好使用另一個評論中提到的case類,而不僅僅是元組。