一、从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://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