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的时候,必须考虑变量是否为空的情况!!!

更多相关文章

  1. java 和 JavaScript都可以在创建一个对象时,就可以通过这个对象调
  2. 有什么方法可以避免HibernateOptimisticLockingFailureException
  3. native方法的使用
  4. Java Quartz的使用方法,实现程序计时
  5. 将行计数器方法与字数统计方法相结合
  6. java基础:集合框架之Map(共性方法)
  7. JAVA中的反射只获取属性的get方法
  8. [疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)
  9. 再论javaIO之拷贝MP3(read方法返回int的原因)

随机推荐

  1. Chrome将内置原生的懒加载功能
  2. 有了这个VSCode神器,从此爱上调试代码
  3. Mozilla发布WebVR创建工具
  4. SQL select语句笔记
  5. 使用Python转换PDF,Word/Excel/PPT/md/HTM
  6. webpack4.0正式版重大更新与特性详细清单
  7. 正确使用异步函数的姿势[每日前端夜话(0x
  8. 下一代原生应用开发框架来了:Google Flutt
  9. 盘一盘机器学习中的那些距离
  10. 世界顶级公司的前端面试都问些什么[每日