~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PipelineExample winutils.exe java.lang.NullPointException~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在运行Spark ML管道 PipelineExample 样例代码的时候报错,这个错误之前我也遇到过,知道是本地环境未配置,当时我以为需要安装Hadoop、Spark的安装程序什么的就嫌麻烦跳过了,现在不得不解决的时候发现还是很简单的。只需要下载spark-2.1.0-bin-hadoop2.7.tgz、hadoop-2.7.3.tar.gz、winutils.exe三个文件就行,无需安装。
具体是分别将Spark、Hadoop的tgz文件解压在全英文的文件夹内,是否在同一个文件夹内没有关系,然后将winutils.exe放入hadoop-2.7.3\bin目录下。
可以配置系统环境变量,在Path<windows>中加入HADOOP_HOME、 SPARK_HOME、SPARK_CLASSPATH
不配置也没有关系,在代码中加入下列代码即可!
System.setProperty("hadoop.home.dir", "F:\\Setup\\BigData\\hadoopSetUp\\hadoop-2.7.3")
java.io.IOException: Could not locate executable
null
\bin\winutils.exe in the Hadoop binaries.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Case Class~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本文原文出处: http://blog.csdn.net/bluishglc/article/details/50914001 严禁任何形式的转载,否则将委托CSDN官方维护权益!
Case Class的特别之处在于:
- 编译器会为Case Class自动生成以下方法:
- equals & hashCode
- toString
- copy
- 编译器会为Case Class自动生成伴生对象
编译器会为伴生对象自动生成以下方法
- apply
- unapply
这意味着你可以不必使用new关键字来实例化一个case class.
case class的类参数在不指定val/var修饰时,会自动编译为val,即对外只读,如果需要case class的字段外部可写,可以显式地指定var关键字
以上就是Case Class的全部特征,简单地总结起来就是:让编译器帮忙自动生成常用方法!反过来,如果你手动实现了对应的方法和伴生对象,那么就等同于生成了Case Class. 而实际使用过程中,手动实现这些方法是很繁琐和无趣的,使用Case Class就是最好的选择。当你希望设计一个类只是用来作为数据载体时,
Case Class是一个很好的选择,实际上,这正是DTO(或者也有叫作VO)做的事情,所以说Case Class的一个典型应用场景就是DTO。