【大数据处理架构】SparkR

本文介绍了R语言在统计分析和交互式应用中的优势,特别是RStudio的Shiny包,允许用户无需了解网页语言即可创建交互式应用。接着,文章转向SparkR,它是Apache Spark与R的集成,支持多种集群管理模式,并且在Spark 1.4及以后版本中内置,简化了大数据分析的过程。推荐使用RStudio作为IDE进行SparkR开发,同时提供了本地和远程访问Spark的指导。
摘要由CSDN通过智能技术生成

一、从R说起

   R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个广泛应用于统计计算和统计制图的优秀编程语言。

    

优点:开源,有许多工具包,可塑性强。

例子:quantmond 用于股票分析

> install.packages('quantmod') # 安装quantmod包
> require(quantmod) #引用quantmod包
> getSymbols("GOOG",src="yahoo",from="2013-01-01", to='2013-04-24') #从雅虎财经获取google的股票数据
> chartSeries(GOOG,up.col='red',dn.col='green')  #显示K线图
> addMACD() #增加MACD图

交互式

例子:Shiny

RStudio是的R语言IDE,其开发团队最近又推出了一个新的产品,即Shiny包。它的作用是快速搭建基于R的交互网页应用。使得那些对代码不熟悉的人士在工作中也可以应用统计模型。对于R和web的交互,之前已经有一些相关的包,例如:rApache, Rhttpd, Rack, Rook。不过这些工具都需要开发者不仅要熟悉R,还要熟悉网页编程语言(html,CSS,JS)。而Shiny包的特点在于不需要了解网页语言,可以用纯R来搭建。生成的网页应用是动态交互,而且是即时更新的

首先安装Shiny包:
options(repos=c(RStudio='http://rstudio.org/_packages', getOption('repos')))
install.packages('shiny')

再写两个R代码文件:
一个是负责前端的ui.R,另一个是负责后端的server.R。

这是前端的

library(shiny)
library(ggplot2)
 
dataset <- iris
 
shinyUI(pageWithSidebar(
 
  headerPanel("鸢尾花的数据展示"),
  sidebarPanel(
 
    selectInput('x', 'X', names(dataset)),
    selectInput('y', 'Y', names(dataset)[2]),
    selectInput('color', 'Color', c('None', names(dataset))),
 
    checkboxInput('smooth', 'Smooth')
    ),
 
  mainPanel(
    plotOutput('plot')
  )
))
后端的

library(shiny)
library(ggplot2)
 
shinyServer(function(input, output) {
 
  output$plot <- reactivePlot(function() {
 
    p <- ggplot(dataset, aes_string(x=input$x, y=input$y)) + geom_point()
 
    if (input$color != 'None')
      p <- p + 
        aes_string(color=input$color) + 
        theme(legend.position="top")
 
    if (input$smooth)
      p <- p + 
        geom_smooth() + 
        theme(legend.position="top")
 
    print(p)
 
  }, height=400)
 
})

将这两个代码文件存放到同一个文件夹下,最后在控制台下运行:

library(shiny)
runApp("d:/rspace/shinyapp")

http://rcharts.io/gallery/

http://www.ats.ucla.edu/stat/r/modules/exploring_w_graphics.htm

优点:可扩展性强


二、SparkR 强强联手

和Scala一样,SparkR也支持多种的集群管理模式。SparkR遵循Apache 2.0 License,除了要求用户在他们机器上安装R和Java之外,不需要依赖任何外部的东西!

而在spark1.4以后的版本中spark 自带sparkr无需下载package。

sparkR 运行图


本质上,通过sparkr-shell编写r语言程序,进行运算和分析。通过IDE些代码和package 的管理更方便

推荐使用RStudio

https://www.rstudio.com/products/rstudio/

本地使用:

  sc <- sparkR.init("local")
  lines <- textFile(sc, "hdfs://data.txt")
  wordsPerLine <- lapply(lines, function(line) { length(unlist(strsplit(line, " "))) 

远程访问(也就是,远程访问数据库HDFS和spark:如下

spark://arahant-01:7077
Sys.setenv('SPARKR_SUBMIT_ARGS'='"--packages" "com.databricks:spark-csv_2.10:1.2.0" "sparkr-shell"')
Sys.setenv(SPARK_HOME="/opt/spark-1.4.0-bin-hadoop2.6")
install.packages('magrittr')
library(SparkR)
library(lattice)
library(magrittr)
sc <- sparkR.init(master = "spark://arahant-01:7077", sparkEnvir=list(spark.sparkr.use.daemon="false"))
sqlContext <- sparkRSQL.init(sc)
df <- read.df(sqlContext, "hdfs://arahant-01:9000/oil/index.csv", source = "com.databricks.spark.csv", header="true")
hiveContext <- sparkRHive.init(sc)
results <- sql(hiveContext, "select * from north_dakota_montana_index")
collected <- collect(results)


通过WEB访问。需要配置

1.本机上安装Rstudio

2.打开8787端口


这样你就可以通过输入

http://your IP: 8787 使用WEb版的RStudio

如图


PS.  GOOGLDE trend:cloud computing virtualization  bigdata



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值