【发布时间】:2017-08-07 13:40:56
【问题描述】:
所以我有一个数据框和一个列名列表,我需要将它们放入数组函数中,这样我就可以使用 .withColumn 函数将名称传递给 UDF。
像这样:val names = "col1,col2,col3" 而我需要的是 array("col1","col2","col3") 。我试图将名称变成 Seq 并像这样执行 for 循环:
array(for(i <- 0 to names.length-1)names(i))
但问题是这个 for 循环不返回任何值。但是如果我做一个 for yield 循环,那么它会将我想要的所有元素放入一个集合中,但我需要单独提取它们。
关于如何解决这个问题的任何想法?
为了让问题更清楚......数组是一个函数,而不是一个集合。数组就是集合。
例子:
scala> array("col1","col2","col3")
res20: org.apache.spark.sql.Column = array(col1, col2, col3)
我需要什么:我有序列val names = Seq("col1","col2","col3"),我需要将 Seq 中的元素放入数组函数中。
【问题讨论】:
-
names.split(",") -
@philantrovert 给我一个收藏,我不需要收藏
-
你的
array和scalaArray不一样?如果不是数组,你想要什么? -
你能提供输入和预期输出吗?
-
@philantrovert for scala 2.0 数组是一个函数,数组是集合,请看我的更新
标签: scala apache-spark spark-dataframe