【大数据处理架构】SparkR
来源:互联网 发布:编程命名规范 编辑:程序博客网 时间:2024/05/16 11:16
一、从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:7077Sys.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
- 【大数据处理架构】SparkR
- 大数据处理的架构逻辑
- 大数据处理的关键架构
- 大数据处理架构Hadoop配置
- 1.大数据处理架构Hadoop
- 大数据处理平台基础架构-sohu-smc
- 用于实时大数据处理的Lambda架构
- 【大数据处理架构】1.spark streaming
- 【大数据处理架构】0.综述-资料楼
- 大数据处理的关键层次架构
- 用于实时大数据处理的Lambda架构
- SparkR
- SparkR
- SparkR
- SparkR
- 【大数据处理架构】3. kafka安装与使用
- 大数据处理
- 大数据处理
- 第六课纹理映射:
- android:open failed: EISDIR (Is a directory)
- Extended Vertical Label Control in C# .NET
- 第七课 光照和键盘控制
- QT QTableWidget 用法总结
- 【大数据处理架构】SparkR
- 关于如何使用thinkphp自带的分页功能
- BestCoder Round #55 解题报告
- linux下安装和配置mongodb
- 类中的const成员函数
- Visual Studio 2008 简体中文正式版下载及序列号(无使用期限限制,正式版)
- 最全面的垂直搜索引擎统计-行业搜索--垂直搜索
- VMWare虚拟系统的网络工作模式
- 【JavaScript】DOM之我的初步理解