《图解Spark》一书中的一段代码,使用spark+word2vec+前馈神经网络,实现手机短信分类。
本人使用这个例子研究此类课题的实现过程,
本文为代码的详细注释。(自用,入门,过于详细。)本文仅为头部信息,主体代码见后续(2)(3)等。。
import org.apache.log4j.{Level, Logger}
1、在应用程序中添加日志记录总的来说基于三个目的 :
- 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;
- 跟踪代码运行时轨迹,作为日后审计的依据;
- 担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。
2、 Log4j是强有力的日志操作包。
3、Logger - 日志写出器 ,供程序员输出日志信息
4、配置根 Logger ,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中, level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者您定义的级别。 Log4j 建议只使用四个级别 ,优先级从高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG 。
5、{level,logger}:导入log4j包中的这两个类,故用大括号。
---具体可参考https://blog.csdn.net/anlina_1984/article/details/5313023
import org.apache.spark.ml.Pipeline
1、使用原因:
虽然 MLlib 已经足够简单实用,但如果目标数据集结构复杂,需要多次处理,或是在学习过程中,要使用多个转化器 (Transformer) 和预测器 (Estimator),这种情况下使用 MLlib 将会让程序结构极其复杂。
Pipeline 是建立在 DataFrames 上的更高层次的 API 库,旨在帮助使用者来创建和调试实际的机器学习工作流。
2、