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

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

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

(0)
上一篇 2022年3月1日 下午4:00
下一篇 2022年3月1日 下午5:00


相关推荐

  • Pytest(5)美化插件进度条pytest-sugar[通俗易懂]

    Pytest(5)美化插件进度条pytest-sugar[通俗易懂]前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月30日
    9
  • idea 添加依赖_idea Tomcat

    idea 添加依赖_idea Tomcat使用IDEA编辑器开发项目十分便捷,这里介绍使用IDEA编辑器添加Tomcat1、新建web工程这里有一个已经创建好的web项目2、配置tomcat配置tomcat前,先确保本地已经下载并安装完成了tomcat如果不清楚如何安装tomcat,请参考:安装tomcat点击Run,EditConfigurations……

    2022年10月18日
    6
  • 字符串常量池详解「建议收藏」

    字符串常量池详解「建议收藏」字符串常量池详解文章所涉及的资料来自互联网整理和个人总结,仅作为个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!概述在JVM中,为了减少字符串对象的重复创建,维护了一块特殊的内存空间,这块内存空间就被称为字符串常量池。在JDK1.6及之前,字符串常量池存放在方法区中。到JDK1.7之后,就从方法区中移除了,而存放在堆中。一下是《深入理解虚Java虚拟机》第二版原文:对于HotSpot虚拟机,根据官方发布的路线图信息,现在也有放弃永久代并逐步改为采用NativeMemory来实

    2022年7月28日
    7
  • CentOS7安装VMware Tools

    CentOS7安装VMware ToolsCentOS7安装VMwareTools的具体步骤如下:一、准备工作点击VMware菜单栏【虚拟机】,选择【安装VMwareTools】;如果安装了早期版本的VMwareTools,则菜单项为[更新VMwareTools]查看【虚拟机>设置>硬件>CD/DVD】是否已装载CD虚拟驱动器,如下图二、检查系统是否挂载成功在虚拟机中,以root身份登录客…

    2022年5月26日
    54
  • EggNOG功能注释数据库在线和本地使用

    EggNOG功能注释数据库在线和本地使用文章目录 COG 简介 eggNOG 简介 eggNOGmapper 在线版 eggNOGmapper 本地版安装说明软件安装数据库下载基本使用 HMMER 方法 diamond 方法结果解读高级使用服务器共用内存模式宏基因组大数据模式同源检索功能注释附 1 emapper py 参数详解 Reference 猜你喜欢写在后面 COG 简介 COG ClustersofOr

    2026年3月26日
    2
  • java环境变量自动配置工具分享

    java环境变量自动配置工具分享

    2021年9月29日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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