Scala 如何使用字符串数组为spark dataframe中的toDF()函数设置列名?

Scala 如何使用字符串数组为spark dataframe中的toDF()函数设置列名?,scala,apache-spark,Scala,Apache Spark,比如说, val columns=Array("column1", "column2", "column3") val df=sc.parallelize(Seq( (1,"example1", Seq(0,2,5)), (2,"example2", Seq(1,20,5)))).toDF(columns) 如何使用字符串数组设置列名? 是否可以在toDF()中提及数据类型 toDF()采用逗号分隔的字符串toDF()采用类型为String的重复参数,因此您可以使用.*类型注释传递序列: va

比如说,

val columns=Array("column1", "column2", "column3")
val df=sc.parallelize(Seq(
(1,"example1", Seq(0,2,5)),
(2,"example2", Seq(1,20,5)))).toDF(columns)
如何使用字符串数组设置列名? 是否可以在toDF()中提及数据类型

toDF()采用逗号分隔的字符串

toDF()
采用类型为
String
的重复参数,因此您可以使用
.*
类型注释传递序列:

val df=sc.parallelize(Seq(
  (1,"example1", Seq(0,2,5)),
  (2,"example2", Seq(1,20,5)))).toDF(columns: _*)
有关重复参数的更多信息,请参阅中的第4.6.2节。

toDF()
在中定义为:

因此,您需要将数组转换为varargs,如下所述。这意味着您需要执行以下操作:

val columns=Array("column1", "column2", "column3")
val df=sc.parallelize(Seq(
(1,"example1", Seq(0,2,5)),
(2,"example2", Seq(1,20,5)))).toDF(columns: _*)

(添加:*到
toDF
中的
列中)

谢谢..如何指定数据类型以及toDF()中的列?谢谢。。。。这正是我要找的一个多小时,谢谢
def toDF(colNames: String*): DataFrame
val columns=Array("column1", "column2", "column3")
val df=sc.parallelize(Seq(
(1,"example1", Seq(0,2,5)),
(2,"example2", Seq(1,20,5)))).toDF(columns: _*)