spark seq.max 报错 Caused by: java.lang.UnsupportedOperationException: empty.max
16lz
2021-01-22
scala 在取seq.max,报错Caused by: java.lang.UnsupportedOperationException: empty.max
百度了很久,发现可能是因为同个迭代器只能使用一次,参考文档:http://blog.csdn.net/love666666shen/article/details/79202121
可以使用Iterator的 min 和 max 方法从迭代器中查找最大与最小元素。但好像同一个迭代器只能使用一次,以为Iterator的max和min方法是TraversableOnce(可遍历一次,遍历过一次之后迭代器就变为空的了)类型的,所以当第二次调用同样的方法,或第一次调用max方法第二次调用min方法时,第二次调用的方法会出现下面的错误
最后发现是 :
写的处理seq的方法中忽略了seq为空的情况,在udf调用该方法时就会报错。
!!!写udf的时候,必须考虑变量是否为空的情况!!!
更多相关文章
- java 和 JavaScript都可以在创建一个对象时,就可以通过这个对象调
- 有什么方法可以避免HibernateOptimisticLockingFailureException
- native方法的使用
- Java Quartz的使用方法,实现程序计时
- 将行计数器方法与字数统计方法相结合
- java基础:集合框架之Map(共性方法)
- JAVA中的反射只获取属性的get方法
- [疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)
- 再论javaIO之拷贝MP3(read方法返回int的原因)