了解了spark编程的基本概念,可以看出spark编程都是围绕着RDD进行的。关于编程的基础知识,可以参看 Spark1.0.0 编程模型

      spark目前支持scala、python、JAVA编程。



      作为spark的原生语言,scala是开发spark应用程序的首选,其优雅简洁的函数式代码,令开发过mapreduce代码的码农感觉象是上了天堂。



      spark也提供了python的编程模型PySpark,使得python可以作为spark开发语言之一。尽管现在PySpark还不能支持所有的spark API,但是我们相信以后的支持度会越来越高;同时作为NOSQL的主力开发工具之一的python,一旦将NOSQL和spark结合后,我们可以想象以后的发展前景。



      至于JAVA,时间和精力允许的情况下再选吧。不过作为长期坐着写代码的码农,应该积极参加登山、会友之类的活动,为身体着想,还是不要选JAVA来编写spark程序了。



      废话了一堆,还是进行spark的编程实践。





1:开发环境



参见 Spark1.0.0Spark1.0.0 开发环境快速搭建  。



含有3台虚拟机组成的集群和一台物理机客户端组成。集群中含有hadoop2.2.0集群和Spark1.1.0集群,客户端含有IntelliJ IDEA。





2:实验项目



sogou日志数据分析



实验数据来源: sogou精简版数据下载地址



数据格式说明:



访问时间\t用户ID\t[查询词]\t该URL在返回结果中的排名\t用户点击的顺序号\t用户点击的URL



其中,用户ID是根据用户使用浏览器访问搜索引擎时的Cookie信息自动赋值,即同一次使用浏览器输入的不同查询对应同一个用户ID。



以上数据格式是官方说明,实际上该数据集中排名和顺序号之间不是\t分割,而是空格分割。



实验数据下载解压后上传到hdfs://hadoop1:8000/dataguru/data/mini.txt



实验项目:



A:用户在00:00:00到12:00:00之间的查询数



B:搜索结果排名第1,但是点击次序排在第2的数据有多少?



C:一个session内查询次数最多的用户的session与相应的查询次数





3:多语言编程实现



Spark1.0.0 多语言编程之scala实现



Spark1.0.0 多语言编程之python实现