从scala方法,我想返回一个变量编号的Spark列,如下所示:
def getColumns() : (Column*) = {...}
然后将这个想法用于spark sql:
myDf.select(getColumns, "anotherColumns"..)
问题是,我有大约30个请求都具有相同的select子句,我想将它们放在一起。
知道用什么代替......?我试过像:
($"col1", "$col2")
但它没有编译。
答案 0 :(得分:0)
试试这个:
val df = Seq((1,2,3,4),(5,6,7,8)).toDF("a","b","c","d")
Typecast使用map函数激活列的字符串,并根据需要在数组中添加添加列。
val lstCols = List("a","b")
df.select(lstCols.map(col) ++ List(col("c"),col("d")): _*).show()
+---+---+---+---+
| a| b| c| d|
+---+---+---+---+
| 1| 2| 3| 4|
| 5| 6| 7| 8|
+---+---+---+---+