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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gbdt算法理解_gbdt算法原理

    gbdt算法理解_gbdt算法原理      谈及gbdt算法,不得不提GB与dt算法,即使用梯度提升回归树的方式进行回归提升。     以下贴上经典算法图:    1、第一步,算法中的参数,建立M棵回归树,每颗树的深度都为J,其中有一棵树为第一次建立的回归树,其余M-1棵树为残差(在梯度提升回归树里面为使损失函数最小的梯度向量)建立的树,F(X)为估值向量,即每一例为x样本在K类上的估值。   …

    2022年10月10日
  • JS通过substring、indexOf、lastIndexOf截取字符串中对应的内容「建议收藏」

    JS通过substring、indexOf、lastIndexOf截取字符串中对应的内容「建议收藏」JavaScript截取字符串中的内容substring(下标1,下标2);//从下标1截取到下标2substring();不会改变自身变量下标1:必填,非负整数,开始截取的字符串下标下标2:非必填,非负整数,结束截取的字符串下标,如果下标2不填,则字符串截取到结尾处Demo:letstr=”abcdefghizk”;str=str.substring(1,5);console.log(str);//输出:bcdeTips:截取字符串的结束下标是不包含该字符本身的i

    2022年7月14日
  • db4o 记

    db4o 记阅读http://www-128.ibm.com/developerworks/cn/java/j-lo-db4o2/ 下载地址http://developer.db4o.com/files/folders/objectmanager_xx/default.aspx 有cn的代码—–mainpackagecom;importbo.AutoInfo;importbo.

    2022年7月21日
  • 中心频点计算公式_5G中的频点计算及实例分析[通俗易懂]

    中心频点计算公式_5G中的频点计算及实例分析[通俗易懂]什么是ARFCNARFCN,英文全称AbsoluteRadioFrequencyChannelNumber,即绝对无线频道编号,是指在GSM无线系统中用来鉴别特殊射频通道的编号方案。“ARFCN”一词源自于GSM技术,随着新技术的发展,延伸出其他类似术语,如UMTS/WCDMA的UARFCN,E-UTRAN/LTE的EARFCN,以及现在5G/NR的NR-ARFCN。计算公式:…

    2022年9月28日
  • 极大似然估计和贝叶斯估计的联系(似然估计和最大似然估计)

    1.什么是参数在机器学习中,我们经常使用一个模型来描述生成观察数据的过程。例如,我们可以使用一个随机森林模型来分类客户是否会取消订阅服务(称为流失建模),或者我们可以用线性模型根据公司的广告支出来预测公司的收入(这是一个线性回归的例子)。每个模型都包含自己的一组参数,这些参数最终定义了模型本身。我们可以把线性模型写成y=mx+c的形式。在广告预测收入的例子中,x可以表示广告支…

    2022年4月9日
  • Ubuntu中Anaconda安装opencv3[通俗易懂]

    Ubuntu中Anaconda安装opencv3[通俗易懂]关于如何安装,这篇blog中已经给出了很好的方法:https://blog.csdn.net/isuccess88/article/details/73546835,但由于自前段时间开始换源已经不能解决anaconda的下载速度,因此即使使用此方法也很难进行下去,下载速度太慢了。我特地下载了opencv3的opencv3-3.2.0-py35(链接:https://pan.baidu.com…

    2022年10月19日

发表回复

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

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