我遇到了这个:_ *表示许多spark-scala答案,但无法找到任何文档。实际上是什么意思?这种用法的一个例子就是这个问题的答案
How to use DataFrame filter with isin in Spark Java?
行:
df.filter(col("something").isin(list: _*)
答案 0 :(得分:10)
要理解它,我们举一个例子
scala> def echo(args: String*) =
for (arg <- args) println(arg)
echo: (args: String*)Unit
scala> val arr = Array("What's", "up", "doc?")
arr: Array[String] = Array(What's, up, doc?)
scala> echo(arr)
<console>:14: error: type mismatch;
found : Array[String]
required: String
echo(arr)
scala> echo(arr: _ *)
What's
up
doc?
这种表示法,arr:_*
告诉编译器将arr的每个元素作为自己的参数传递给echo
,而不是将它作为单个参数传递。