sparkr基本操作1

sparkr基本操作1

大家好,又见面了,我是全栈君。

由于装的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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108643.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Struts2用AbstractInterceptor取代了AroundInterceptor

    Struts2用AbstractInterceptor取代了AroundInterceptorStruts2中绝大多数预建interceptor都从AbstractInterceptor扩展而来,AbstractInterceptor不在支持before、after两个抽象方法,取而代之的是intercept方法被抽象出来,交由子类去实现。其实大多数interceptor只会去实现before、after中的一个,这样就必须还要在ww中为另一个提供空方法,再由于线程安全问题WW…

  • 浮动广告代码实例「建议收藏」

    浮动广告代码实例「建议收藏」很多网站的页面都有漂浮的广告效果,虽然烦人,但也确实起到了良好的宣传效果。各大代码网站也有关于漂浮代码的实例,很多存在着兼容性问题,不符合W3C标准,本站修复了兼容性问题,下面就简单介绍一下如何实现此效果。代码如下:[HTML]纯文本查看复制代码运行代码0102030405060708091011121314151617181920212223242526272829303

  • C# AntiForgeryToken防XSRF漏洞攻击

    C# AntiForgeryToken防XSRF漏洞攻击XSRF:跨站请求伪造XSRF即在访问B站点的时候,执行了A站点的功能。比如:A站点登录后,可以修改用户的邮箱(接口:/Email/Modify?email=123),修改邮箱时只验证用户有没有登录,而且登录信息是保存在cookie中。用户登录A站点后,又打开一个窗口访问B站点,如果这时B站点内嵌入了一条链接http://www.A.com/Email/Modify?email=123

  • python3基础:操作mysql数据库

    python3基础:操作mysql数据库mysql登陆基本操作:登陆:mysql-uroot-h127.0.0.1-P3306-pmysql-uroot-p(本机不用写host)退出mysql:ctrl+z+回车,或者exit端口号默认是3306,但是可以通过安装目录下的配置文件修改。使用流程引用API模块获取与数据库的连接执行sql语句与存储过程关闭数据库连接安装pymysqlpython3与…

  • 二分类变量相关性分析spss_两个有序分类变量相关性的卡方检验-SPSS教程

    二分类变量相关性分析spss_两个有序分类变量相关性的卡方检验-SPSS教程一、问题与数据研究者想探索类风湿关节炎躯体感觉的症状数量与疼痛等级之间的关系,从一家大型医院入院治疗的类风湿关节炎病人中随机招募了364例研究对象。类风湿关节炎躯体感觉共有6种症状,研究者请研究对象报告其患有症状。类风湿关节炎门诊的医生使用疼痛量表对每个研究对象的疼痛进行评级。研究对象自报的类风湿关节炎躯体感觉症状数量在1-6个之间,为有序分类变量,变量名为symptoms。医生将研究对象的疼痛分…

  • c语言位运算取反_c语言取反程序

    c语言位运算取反_c语言取反程序先说结论假设x为signedint,也就是说它的补码表示中第一位表示符号(1:负;0:正),那么~x=-(x+1)证明计算机内部使用补码表示,则问题相当于求证:当x为signedint时,(~x)补=[-(x+1)]补(0)证明:因为补码有个规律:(x+y)补=(x)补+(y)补,所以:[-(x+1)]补=[(-x)+(-1)]补=(-x)补+(-1)补要证(~x)补=[-(x+1)…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号