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

原文地址:http://blog.csdn.net/bdchome/article/details/48104537

[Author]: kwu 

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


1、集群启动SparkR

输入 bdcmagicR

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



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;

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


做为变量的返回:


最后需要关闭 sparkR.stop()



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

以上实例,均在spark1.4.1上的sparkR测试通过


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值