2017-07-10 63 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)) 
相关问题