提供一个序列作为接受varargs的方法的参数



Spark DataFrame中,我们有一个select方法,该方法具有varargs第二参数:

  @scala.annotation.varargs
  def select(col: String, cols: String*): DataFrame = 
        select((col +: cols).map(Column(_)) : _*)

我想使用Sequence调用select

val ProductCols = Seq("prdct_id", "prdct_tag")

偏好是调用如下:

myDataFrame.select(ProductCols: _*)

然而,该方法无法解决上述方法,因此已使用以下方法:

myDataFrame.select(ProductCols.head, ProductCols.tail: _*)

有没有一种方法可以仅发送ProductCols一次 - varargs会接受吗?

您应该将字符串包装到列:

 Df.select(cols.map(x => col(x)) :_*)

也写import org.apache.spark.sql.functions._

最新更新