Scala 优雅地将函数应用于WrappedArray的所有元素

Scala 优雅地将函数应用于WrappedArray的所有元素,scala,apache-spark,Scala,Apache Spark,这: 如果您不担心单词的大小写,则可以使用 我可以很容易地将.toLowerCase()应用于value,以获得此…(value.toLowerCase()) 但是,如何应用于正在包装的传入阵列而不是外部阵列 val checkValue = udf { (array: WrappedArray[String], value: String) => array.contains(value) } 与 array.contains(value) \u==value可以用任意谓词替换 在你

这:

如果您不担心单词的大小写,则可以使用

我可以很容易地将
.toLowerCase()
应用于value,以获得此
…(value.toLowerCase())

但是,如何应用于正在包装的传入阵列而不是外部阵列

val checkValue = udf { (array: WrappedArray[String], value: String) => array.contains(value) }

array.contains(value)
\u==value
可以用任意谓词替换

在你的情况下,可能是

array.exists(_ == value)

另外,请注意,
“ß”.toUpperCase==“SS”
为真,而
“ß”==“SS”.toLowerCase
“ß”。compareIgnoreCase(“SS”)
均为假,请参见示例。

数组.iterator.map(\uu.toLowerCase).contains(value.toLowerCase)
?@LuisMiguelMejíaSuárez为什么没有答案?@LuisMiguelMejíaSuárez是的,我确实会记住这一点,这在我的脑海中是如此明显,以至于我确信它因为某种原因不会起作用:p@LuisMiguelMejíaSuárez好吧,就这样吧,但重点是“优雅”
array.exists(value.equalsIgnoreCase)