Windows下Spark-mlib保存模型到本地报空指针解决方案
出这种错误真是一脸懵逼,代码肯定是没问题的。
二、解决办法
下载编译好的winutils.exe,该文章里讲述了出错的原因;
把该执行文件放置在某个路径下,如 c:\\winutils\\bin;
在代码中加入这句话:System.setProperty("hadoop.home.dir","C:\\winutils")
三、原因
在上述引用的文章中,大致讲了一个意思:在Windows操作系统中,Hadoop中初始发行版本中的bug,导致Hadoop中用于评估文件权限的功能不能正常运行。在执行作业的时候,存储到HDFS的路径依旧是可达的,(上述错误虽然存在,但依旧在相应路径下保存了spark mlib跑出来的模型,只不过是没有数据),但是map/reduce作业会执行失败。
这个异常是属于Hadoop在Windows上的bug所致,在Linux下不会报错,也不用加上那句话。