在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._