R與Cassandra 大資料分析強力組合

來源:互聯網
上載者:User

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.Cassandra Driver",   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])  #Pl ot 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資料是非常簡單的,而兩者的結合也為統計方法增加了強大的組合。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.