R与Cassandra 大数据分析强力组合

R作为开源的数据统计分析语言正潜移默化的在企业中扩大自己的影响力。特有的扩展插件可提供免费扩展,并且允许R语言引擎运行在Hadoop集群之上。如今,Oracle的大数据方案中也出现了R语言包的身影。

R语言是主要用于统计分析、绘图的语言和操作环境。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发。(也因此称为R)现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用 S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。

R的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。R主要是以命令行操作,同时有人开发了几种图形用户界面。

现在,统计工作者可利用R语言,R语言擅长在Hadoop分布式文件系统中存储的非结构化数据的分析。R现在还可以运行在HBase这种非关系型的数据库以及面向列的分布式数据存储之上。其主要模仿了Google的BigTable。这基本上等同于使用Hadoop来持有结构化数据的数据库。就像Apache软件基金会Hadoop项目的子项目HBase一样。同时R已经可以与Cassandra

从Cassandra读取数据

先觉条件是RJDBC模块,并且Cassandra版本至少在1.0或以上以及Cassandra JDBC驱动。在以下示例中驱动和Cassandra位于同一目录

The example code assumes you have run through the Portfolio Manager Demo that comes with DSC/DSE

#Load RJDBC library(RJDBC)  #Load in the Cassandra-JDBC diver cassdrv <- JDBC("org.apache.cassandra.cql.jdbc.CassandraDriver",   list.files("/Users/jake/workspace/bdp/resources/cassandra/lib/",pattern="jar$",full.names=T))  #Connect to Cassandra node and Keyspace casscon <- dbConnect(cassdrv, "jdbc:cassandra://localhost:9160/PortfolioDemo")  #Query timeseries data res <- dbGetQuery(casscon, "select * from StockHist limit 10")  #Transpose tres <- t(res[2:10])  #Plot boxplot(tres,names=res$KEY,col=topo.colors(length(res$KEY))) title("BoxPlot of 10 Stock Price Histories")

而RCassandra包也是不错的选择

R、Cassandra和Hive

利用R访问Hive和Cassandra,在这里使用DataStax Enterprise,首先启动Hive服务器:dse hive –service hiveserver

#Load RJDBC library(RJDBC)  #Load Hive JDBC driver hivedrv <- JDBC("org.apache.hadoop.hive.jdbc.HiveDriver",                 c(list.files("/Users/jake/workspace/bdp/resources/hadoop",pattern="jar$",full.names=T),                   list.files("/Users/jake/workspace/bdp/resources/hive/lib",pattern="jar$",full.names=T)))  #Connect to Hive service hivecon <- dbConnect(hivedrv, "jdbc:hive://localhost:10000/default")  #Create Hive table mapping to Cassandra ColumnFamily tmp <- dbSendQuery(hivecon,"create external table StockHist(row_key string, column_name string, value double)   STORED BY 'org.apache.hadoop.hive.cassandra.CassandraStorageHandler'   WITH SERDEPROPERTIES ('cassandra.ks.name' = 'PortfolioDemo')")  #Run Hive Query to get returns hres <- dbGetQuery(hivecon,"select a.row_key ticker,  AVG((b.value - a.value)) ret   from StockHist a JOIN StockHist b on   (a.row_key = b.row_key AND date_add(a.column_name,10) = b.column_name)   group by a.row_key order by ret")   #Plot  barplot(hres[,2],names.arg=hres[,1],col = topo.colors(length(hres[,2])), border = NA) title("Avg 10 Day Return for all Stocks")

结论

以上事例显示出利用R访问Cassandra数据是非常简单的,而两者的结合也为统计方法增加了强大的组合。

时间: 2024-09-15 21:11:14

R与Cassandra 大数据分析强力组合的相关文章

《R与Hadoop大数据分析实战》一2.5 在R环境中编写Hadoop MapReduce程序的方式

2.5 在R环境中编写Hadoop MapReduce程序的方式 我们知道对将R工具用于分析的统计学家.网络分析师以及产品经理来说,用MapReduce进行Hadoop大数据处理是一件非常重要的事,因为补充MapReduce的编程知识对于用Hadoop将分析整合到MapReduce来说是必要的.并且,我们知道R是一个一直以来普及程度逐步提升的工具:为了整合R,有许多程序包和函数库一直在改进.因此为了研发基于R和Hadoop计算能力运行的MapReduce算法程序,我们需要R和Hadoop的中间软

《R与Hadoop大数据分析实战》一第2章 编写Hadoop MapReduce程序

第2章 编写Hadoop MapReduce程序 在第1章中,我们学习了如何搭建R和Hadoop开发环境.既然我们对大数据分析感兴趣,接下来就学习如何使用Hadoop MapReduce进行大数据处理.在本章中,我们要讨论MapReduce的基础概念,为何它是不可或缺的,以及如何在Apache Hadoop上进行MapReduce编程等内容.本章节将会涉及如下内容:MapReduce基础概念Hadoop MapReduce技术Hadoop MapReduce原理编写Hadoop MapReduc

《R与Hadoop大数据分析实战》一1.1 安装R

1.1 安装R 可以通过访问R的官方网站下载相应的版本.这里提供了对应三种不同操作系统的下载步骤,包括在Windows.Linux和Mac上安装R.下载最新版本的R,其中包括所有最新的补丁和错误解决方案.对于Windows操作系统,请执行以下步骤: 访问www.r-project.org. 点击CRAN,选择CRAN镜像(CRAN mirror),并选择你的Windows操作系统(捆绑到Linux:Hadoop通常在Linux环境下运行). 从镜像中下载最新的R版本. 执行下载的.exe程序,安

《R与Hadoop大数据分析实战》一2.1 MapReduce基础概念

2.1 MapReduce基础概念 如果没有使用过集群或信息传递接口(Message Passing Interface,MPI),那么理解MapReduce基础概念将不会是一件容易的事.更多的实际应用是数据不存放在一个硬盘中而是存放于分布式文件系统中(Distributed File System,DFS),或存放于由Hadoop技术实现的分布式软件中.MapReduce同时也是一个编程模型,它以一种分布式方法进行工作.其中包括信息传递接口(MPI)和同步并行计算模型(Bulk Synchro

如何让Hadoop结合R语言做大数据分析?

为什么要让Hadoop结合R语言? R语言和Hadoop让我们体会到了,两种技术在各自领域的强大.很多http://www.aliyun.com/zixun/aggregation/7155.html">开发人员在计算机的角度,都会提出下面2个问题.问题1: Hadoop的家族如此之强大,为什么还要结合R语言? 问题2: Mahout同样可以做数据挖掘和机器学习,和R语言的区别是什么?下面我尝试着做一个解答:问题1: Hadoop的家族如此之强大,为什么还要结合R语言? a. Hadoop

《R与Hadoop大数据分析实战》一导读

前 言 组织获得的数据量每一天都在成倍增加.现在组织可以存储大量信息在低成本平台上,例如Hadoop. 如今这些组织面临的难题是如何处理这些数据以及如何从这些数据中获取关键的见解.于是R应运而生.R是一个令人惊讶的工具,它是一个在数据中能够运行先进统计模型的单元,它将原始模型翻译成丰富多彩的图形和可视化视图,而且它有很多和数据科学相关的功能. 然而,R的一个主要缺点是它的可扩展性较差.R的核心技术引擎可以加工和处理非常有限的数据量.正因为在大数据处理中Hadoop十分流行,所以为了可扩展性,下一

《R与Hadoop大数据分析实战》一1.3 R语言的功能特征

1.3 R语言的功能特征 目前R程序包已经超过3000个,其数量仍在与日俱增.没有任何一本书可以清楚介绍所有这些程序包.本书仅侧重于介绍R的主要特征以及最常用和主流的程序包. 1.3.1 使用R程序包 R程序包都是一些具有函数特性的自含单元,可以看做是若干个函数的集合,类似于Java中的.jar文件.现有关于R程序包的海量书籍所涵盖的应用范围非常广泛,从统计操作和机器学习到丰富的图形可视化和绘制.每个程序包都包括一个或多个R函数.一个R程序包是可供他人重复使用和共享的实体.R用户可以安装拥有他们

《R与Hadoop大数据分析实战》一2.3 Hadoop MapReduce原理

2.3 Hadoop MapReduce原理 为了更好地理解MapReduce的工作原理,我们将会: 学习MapReduce对象. MapReduce中实现Map阶段的执行单元数目. MapReduce中实现Reduce阶段的执行单元数目. 理解MapReduce的数据流. 深入理解Hadoop MapReduce. 2.3.1 MapReduce对象 由Hadoop的MapReduce技术可以引申出如下3个主要对象: Mapper:它主要用于实现MapReduce的Map阶段的操作.该对象在M

《R与Hadoop大数据分析实战》一1.4 Hadoop的安装

1.4 Hadoop的安装 现在假定你已经了解了R语言,知道它是什么,如何安装它,它的主要特点是什么,以及为什么要使用它.现在,我们需要知道R的局限性(这样能更好地引入对Hadoop的介绍).在处理数据前,R需要将数据加载到随机存取存储器(RAM).因此,数据应该小于现有机器内存.对于数据比机器内存还要大的,我们将其看做大数据(由于大数据还有许多其他定义,这只适用于我们现在所说的例子). 为了避免这类大数据问题,我们需要扩展硬件配置,但这只是一个临时解决方案.为了解决这一问题,我们需要使用一个H