2017-07-10 61 views
0

我哈瓦一個RDDArray[String],我想RDD轉換爲DataFrame,該Array[String]'價值是colnames,但DataFrame.toDf()功能需要一個String*如何數組[字符串]轉換爲字符串*斯卡拉火花

這是toDF()的源代碼:

def toDF(colNames: String*): DataFrame = ds.toDF(colNames : _*) 

這是我的代碼:

val sqlContext = new SQLContext(sc) 
    import sqlContext.implicits._ 
    val arr=Array(
     (1,2), 
     (3,2), 
     (4,2), 
     (5,2), 
     (7,2) 

    ) 
    val colNames=Array("first","second") 
    val df = sc.parallelize(arr,2).toDF("??","??") 

這是我期待的結果:

+-----+------+ 
|first|second| 
+-----+------+ 
| 1|  2| 
| 3|  2| 
| 4|  2| 
| 5|  2| 
| 7|  2| 
+-----+------+ 
+0

[Pass List \ [String \]可能重複使用f(args:String \ *)scala]的函數(https://stackoverflow.com/questions/38258 023 /傳遞liststring到功能 - 即通吃fargs串-階) – eliasah

回答

2

使用_*可變參數斯卡拉,這樣你就可以做到這一點:sc.parallelize(arr,2).toDF(colNames:_*)

0

您可以從colNames陣列通過單獨的字符串作爲

sc.parallelize(arr,2).toDF(colNames(0), colNames(1)) 
相關問題