由于装的sparkr是1.4版本的,老版本的很多函数已经不再适用了。

在2台服务器的组成的集群中测试了一版数据,熟悉下这个api的基本操作。​

libpath <- .libPaths()

libpath <- c(libpath, "/home/r/spark/spark-1.4.0-bin-hadoop2.4/R/lib")

.libPaths(libpath)

rm(libpath)

library(SparkR)

#没有默认找到变量 需单独设置,也可以在sparkR.init()里设置

Sys.setenv(SPARK_HOME="/home/r/spark/spark-1.4.0-bin-hadoop2.4/")

​#单主机启动

sc <- sparkR.init()

#集群启动

sc <- sparkR.init("spark://master机器ip:监听端口")

#失效​

# sc <- sparkR.init(sparkPackages="com.databricks:spark-csv_2.11:1.0.3")

sqlContext <- sparkRSQL.init(sc)

df <- createDataFrame(sqlContext, iris)

t <- head(summarize(groupBy(df, df$Species), count=n(df$Sepal_Length), m=sum(df$Sepal_Length)))

#读取数据将其转为json格式 以便sparkr读取​

pay.data <- read.table("/tmp/pay.dat", stringsAsFactors = F, sep="\t")

names(pay.data) <- c("user", "money")

df.pay <- createDataFrame(sqlContext, pay.data)

#createdataframe函数在原始data.frame很大时基本被huang住,不知道是什么原因

json <- apply(pay.data, 1, toJSON)

#   json <- toJSON(pay.data[i, ])

write.table(json, file="/tmp/1.json", col.names = F,

row.names=F, append=T, quote = F)

# }

write.table(josn1, file="http://183.60.122.213:7070/tmp/1.json", col.names = F, row.names=F, quote = F)

pay1.json <- read.df(sqlContext, "/home/r/spark/spark-1.4.0-bin-hadoop2.4/examples/src/main/resources/people.json",

"json")

#默认只支持默认只支持json和Parquet 格式文件,文件需要在work服务器上

pay.json <- read.df(sqlContext, "/tmp/1.json",

"json")

pay.json$money1 <- cast(pay.json$money, "double")

#将数据按帐号汇总统计后排序 输出​

pay.account <- agg(groupBy(pay.json, pay.json$user), money=sum(pay.json$money1),

num=n(pay.json$user))

pay.account1 <- arrange(pay.account, desc(pay.account$money), desc(pay.account$num))

write.df(pay.json, "/tmp/account1", "json")

分组统计了500w+的充值数据 并且排序后写成json文件到磁盘  时间是22s+​,比ddply要快,4700w耗时约26s,再大的数据暂时没有统计了。

理解的很粗浅,sparkr适用于r无法统计的大批数据的预处理,可以将简单预处理的汇总数据返回给R加以建模分析。其他还有待后续深入了解。

参考:

1)​简单介绍http://people.apache.org/~pwendell/spark-releases/latest/sparkr.html#sparkr-dataframes

2)常用函数http://people.apache.org/~pwendell/spark-releases/latest/api/R/index.html

转载于:https://www.cnblogs.com/awishfullyway/p/6485140.html

sparkr基本操作1相关推荐

  1. java通过jri 数据分析_SparkR安装部署及数据分析实例

    1. SparkR的安装配置 1.1.       R与Rstudio的安装 1.1.1.           R的安装 我们的工作环境都是在Ubuntu下操作的,所以只介绍Ubuntu下安装R的方法 ...

  2. 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)

    我们先来看一个关于查找的例子.查找,就是从复杂的数据结构中,找到满足某个条件的元素.通常可从以下两个方面来对数据进行查找操作:​ 根据元素的位置或索引来查找: 根据元素的数值特征来查找. 针对上述两种 ...

  3. pytorch方法,Tensor及其基本操作_重点

    由于之前的草稿都没了,现在只有重写-. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...

  4. Gradle安装使用以及基本操作

    转自:https://www.cnblogs.com/linkstar/p/7899191.html Gradle安装使用以及基本操作 阅读目录 简单介绍 安装 使用idea创建一个web的Gradl ...

  5. c++文件读取空格_程序员术与道:术—C语言对文件进行处理,文件处理的基本操作...

    各种编程语言都实现了文件的基本操作,提供了对应的接口,本篇文章先为你介绍C语言对文件进行处理和文件处理的基本操作.主要从以下几个方面进行介绍: 读取文件 写入文件 重命名文件 读取目录 读取目录下的文 ...

  6. 【Pandas库】(3) DataFrame的创建方法及基本操作

    各位同学好,今天给大家介绍一下Pandas库中DataFrame类型数据的创建方法和基本操作. 文章内容如下: (1)使用字典类创建. 字典类有:①数组.列表.元组构成的字典:②Series构造的字典 ...

  7. [原创]SparkR针对mysql的数据读写操作实现

    网上翻了两天没找到一份有用的文章,自己研究SparkR的官方api文档,总算找到了实现的接口 我是用R语言加载SparkR库的方式,当然也可以直接用SparkR控制台就不用自己加载SparkR的库了 ...

  8. 【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句

    一.缩略语 PK:primary key 主键 NN:not null 非空 UQ:unique 唯一索引 BIN:binary 二进制数据 UN:unsigned 无符号整数(非负数) ZF:zer ...

  9. MySQL中定义fk语句_MySQL基础篇/第3篇:MySQL基本操作语句.md · qwqoo/MySQL-Review - Gitee.com...

    ### 第3篇:MySQL基本操作语句 - MySQL基础操作 #### 排序检索数据 - 之前的数据没有进行排序,其是按照默认在数据表中的数据返回的 - SELECT语句的ORDER BY 子句进行 ...

最新文章

  1. 利用FLASH和XML做炫酷图片相册
  2. 如何调用webservice接口
  3. mysql匹配数据结构_MySQL索引背后的数据结构及原理
  4. arm linux考勤,定稿毕业论文_基于ARM与Linux的员工刷卡考勤系统喜欢就下吧(范文1)...
  5. MATLAB图像取点操作
  6. SpringMVC以及SSM整合
  7. AtCoder - arc120_c Swaps 2(思维+线段树+模拟)
  8. OSI强调:SSPL并不是开源许可证
  9. php文字左右滚动代码,JavaScript
  10. Python 数据分析三剑客之 NumPy(四):字符串函数总结与对比
  11. Linux 命令(29)—— ls 命令
  12. FaceWarehouse: a 3D Facial Expression Database for Visual Computing
  13. Bailian2690 首字母大写【字符串】
  14. Android Instant Apps教程
  15. 微软时间服务器同步错误,Windows Server 设置时间同步出错问题
  16. matlab射影几何,一种利用单幅图像的现场摄像机自标定方法
  17. WMS系统后端API开发-收货单(ReceiptOrder) API
  18. Monkey框架(测试方法篇) - monkey测试实例
  19. 使用git命令拉取远程分支到本地分支
  20. Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来! | 附代码

热门文章

  1. 产品销售的过程中,价值是不断被定义和挖掘的
  2. 为啥大街上全是跑外卖的年轻人?
  3. 一位年轻有为的企业家李先生
  4. 很多朋友问做自媒体的意义是什么?
  5. go Mutex (互斥锁)和RWMutex(读写锁)
  6. JDBC(实现增删改查的通用操作)
  7. mac下打开多个相同应用程序
  8. 计算机网络的概念,功能和分类
  9. sql server 锁定_如何使用SQL Server 2014托管锁定优先级控制在线索引重建锁定
  10. [补档]noip2019集训测试赛(十)