基于spark1.4.1的sparkR的实例操作

[Author]: kwu 

基于spark1.4.1的sparkR的实例操作,sparkR的操作基本语法与R一致,其中添加了rJava、rhdfs、SparkR的依赖库的支持。


1、集群启动SparkR

输入 bdcmagicR

关于启动脚本的封装参看 : http://blog.csdn.net/bdchome/article/details/48092499

基于spark1.4.1的sparkR的实例操作_第1张图片


2、加载依赖库

[plain]  view plain copy
  1. library("rJava")  
  2. library("rhdfs")  
  3. library("SparkR")  
按顺序依次加载


3、sparkR操作实例

1) 、基础的R语句

[plain]  view plain copy
  1. x <- 0  
  2. for(i in 1:100){  
  3.  x <- x+i  
  4. }  
  5. x  



2)、sparkR操作hdfs上的文件

上传文件,并查看

[plain]  view plain copy
  1. hdfs.init()  
  2. hdfs.put("/opt/bin/jar/people.json","hdfs://nameservice1/tmp/resources/people2.json")  
  3. hdfs.cat("hdfs://nameservice1/tmp/resources/people.json")  

 
  
  
 

sparkR操作该文件,找出年龄大于30的人

[plain]  view plain copy
  1. sqlContext <- sparkRSQL.init(sc)  
  2. path <- file.path("hdfs://nameservice1/tmp/resources/people2.json")  
  3. peopleDF <- jsonFile(sqlContext, path)  
  4. printSchema(peopleDF)  
  5. registerTempTable(peopleDF, "people")  
  6. teenagers <- sql(sqlContext, "SELECT name FROM people WHERE age > 30")  
  7. teenagersLocalDF <- collect(teenagers)  
  8. print(teenagersLocalDF)  
  9.   
  10. sparkR.stop()  
返回结果:

最后需要关闭 sparkR.stop()


3)、通过sparkR操作spark-sql以hive的表为对象

[plain]  view plain copy
  1. hqlContext <- sparkRHive.init(sc)  
  2. showDF(sql(hqlContext, "show databases"))  
  3. showDF(sql(hqlContext, "select * from ods.tracklog where day='20150815' limit 15"))  
  4. result <- sql(hqlContext, "select count(*) from ods.tracklog where day='20150815' limit 15")  
  5. resultDF  <- collect(result)  
  6. print(resultDF)  
  7. sparkR.stop()  

返回结果:show databases;

基于spark1.4.1的sparkR的实例操作_第2张图片

查询返回结果:select * from ods.tracklog where day='20150815' limit 15

基于spark1.4.1的sparkR的实例操作_第3张图片

做为变量的返回:


最后需要关闭 sparkR.stop()

基于spark1.4.1的sparkR的实例操作_第4张图片


总结: sparkR可以完成R基础的操作,以hdfs上的操作,spark-sql的查询等。

你可能感兴趣的:(spark,r,实例)