我有一个函数叫做or例如,定义为;
or(filters: FilterDefinition*)
Run Code Online (Sandbox Code Playgroud)
然后我有一个清单:
List(X, Y, Z)
Run Code Online (Sandbox Code Playgroud)
我现在需要做的是调用or像
or(func(X), func(Y), func(Z))
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,列表的长度可能会发生变化.
在Scala中执行此操作的最佳方法是什么?
我无法弄清楚,但猜测它很简单.我有一个火花数据帧df.该df具有列"A","B"和"C".现在假设我有一个包含此df列的名称的Array:
column_names = Array("A","B","C")
Run Code Online (Sandbox Code Playgroud)
我想以df.select()这样的方式做,我可以指定哪些列不要选择.示例:假设我不想选择列"B".我试过了
df.select(column_names.filter(_!="B"))
Run Code Online (Sandbox Code Playgroud)
但这不起作用
org.apache.spark.sql.DataFrame不能应用于(Array [String])
所以,在这里它说它应该与Seq一起使用.但是,尝试
df.select(column_names.filter(_!="B").toSeq)
Run Code Online (Sandbox Code Playgroud)
结果是
org.apache.spark.sql.DataFrame不能应用于(Seq [String]).
我究竟做错了什么?