Kun*_*mar 6 scala apache-spark
我的代码崩溃了java.util.NoSuchElementException:接下来是空迭代器异常.
def myfunction(arr : Array[(Int,(String,Int))]) = {
val values = (arr.sortBy(x => (-x._2._2, x._2._1.head)).toList)
...........................
Run Code Online (Sandbox Code Playgroud)
代码在我试图对数组进行排序的第一行崩溃.
var arr = Array((1,("kk",1)),(1,("hh",1)),(1,("jj",3)),(1,("pp",3)))
Run Code Online (Sandbox Code Playgroud)
我试图在内部元组的第二个元素的基础上对数组进行排序.如果存在相等性,则应该对内部元组的第一个元素进行排序.
输出 - ((1,("pp",3)),(1,("jj",3)),(1,("hh",1)),(1,("kk",1)) )
这在一些情况下崩溃(通常它工作正常),我猜是由于空数组.
我怎样才能摆脱这种崩溃或任何其他优雅的方式来实现相同的结果.
use*_*379 12
这是因为您的一个数组项(Int,(String,Int))包含空字符串.
"".head
Run Code Online (Sandbox Code Playgroud)
导致
java.util.NoSuchElementException:下一个空迭代器
使用 x._2._1.headOption
val values = (arr.sortBy(x => (-x._2._2, x._2._1)).toList)
Run Code Online (Sandbox Code Playgroud)
从语句中删除 head 是可行的。由于中的空字符串,这会崩溃arr
var arr = Array((1,("kk",1)),(1,("hh",1)),(1,("jj",3)),(1,("pp",3)),(1,("",1)))
Run Code Online (Sandbox Code Playgroud)