我试图利用Databricks struct() function,它单独接受列,如struct(c1,c2,c3)。但是我想向函数传递一个列列表,或者通过其他方法获得类似的结果。
val keyList = List("key1", "key2")
df
.select(
struct(keyList).as("key")
...
我的Dataframe包含列key 1,key 2,我想将它们一起包含在struct()中。我想我可以使用类似keyList:_* 的东西,但显然该函数不是 *-参数化的。有什么建议可以让我做到这一点吗?
1条答案
按热度按时间xzv2uavs1#
TLDR,使用这个:
Docs的定义如下:
和
我们可以使用unpack操作符将list传递给varargs(带 * 的参数):
_*
因此,对于第一个接受string的函数,我们需要一个参数是string,第二个可以是varargs。对于后者,我们可以传递List of Columns。
这两个都应该工作:
输入:
输出: