有说胎记是前世死的方式,偶肚子上有个,于是想,难不成上辈子是被人捅死的,谁那么狠。。。后来遇到个人,在同样的位置也有个类似的,忽然就平衡了。
神回复:也可能你们俩上辈子是很烤串
前言
上一篇主要讲的是spark环境的搭建和任务的提交,这一篇是将spark直接部署在springboot搭建的web服务里,一些数据逻辑交给spark去处理,至于原理等我对spark有了更深的理解再来一一讲述!
编码
使用springboot快速搭建一个web框架,之前对pom中的依赖配置不是怎么在意,进过spark和scala版本的坑之后,发现想配置一个完美的pom是多么的不容易,下面倾情奉送
1 | <parent> |
这里包含了springboot和spark需要的依赖
然后再写一个计算单词个数的方法,这个程序跟以前的一样,只是SparkConfig
的配置有所改变
1 |
|
注意 注意 注意
上面两点写法需要注意implements Serializable
和private transient JavaSparkContext sc
transient
为的是不让sc序列化,如果没有它做修饰,你会遇到这样错
1 | Task not serializable] with root cause |
别说我怎么知道的,这个问题花了整整一下午一把血与泪啊,中文,,英文和日文的解答都尼玛看了。。。文本我用的是《巴黎圣母院》的英文版,下面是结果
结果
代码我放在了GitHub上,有兴趣的可以看一看。
后记
代码都放在了公司了,自己住的地方网速慢的要死,短短一篇文章写了半个多小时。。。
接触spark不到四天,通过demo对其有了更进一步的认识,前几天买的书《Spark快速大数据分析》今天刚到,值得去看一看。
后续
早上使用java8提供的lambda表达式改了以下代码,如下图
代码量减少了一倍,据说效率还提高了。。。