#
尊重版权,转载注明地址
#
博主最近在学习scala,scala是面向函数编程,这与面向对象编程的java有着很大的差别,学习的第一个demo当然是声名显赫的wordcount,代码如下:
val conf = new SparkConf()
conf.setMaster("local[1]").setAppName("word count")
val sc = new SparkContext(conf)
val line = sc.textFile("D:/HDFS/Input/1.txt")
val reduceByKey = line.flatMap(file => file.split(" ")).map(word => (word, 1)).reduceByKey(_ + _ )
当然啦,博主从工作开始便有幸接触到推荐系统的开发设计工作,非常lucky。工程化推荐系统主要经历了三个发展阶段
第一阶段:
推荐系统主要包括算法与服务两部分,纯java编写,算法部分雏形期大概耗时30人天,演变过程经历了从单线程到多线程,从单机到master-slave
第二阶段
随着hadoop的发展,再加之mahout的出现,慢慢的将部分协同过滤算法(看了还看,买了还买)迁移到hadoop平台上,毕竟人家集群机器多呀,分布式不要你操心呀~~~好吧,我只想说两个字: 真棒!
第三阶段
hadoop毕竟是基于IO,离线计算过程中存在着大量的磁盘读写,怎么办呐?中间结果放内存呀~~这时候spark出生了,spark提供了scala,java,phyon API,非常友好,当然了最近也是相当火爆
前段时间有用spark java写过协同过滤算法增量计算的实现 借着学习scala的机会,重新实现了一遍