天天看點

Apache Spark技術實戰(三)利用Spark将json檔案導入Cassandra &SparkR的安裝及使用

sbt

cassandra

spark-cassandra-connector

将存在于json檔案中的資料導入到cassandra資料庫,目前由cassandra提供的官方工具是json2sstable,由于對cassandra本身了解不多,這個我還沒有嘗試成功。

但想到spark sql中可以讀取json檔案,而spark-cassadra-connector又提供了将rdd存入到資料庫的功能,我想是否可以将兩者結合一下。

為了減少複雜性,繼續使用實戰3中的keyspace和table,

與實戰3中描述一緻。

以spark自帶的person.json檔案為例,内容如下所示

假設person.json檔案存儲在$spark_home目錄,在啟動spark-shell之後,執行如下語句

注意:

jsonfile傳回的是jsonrdd,其中每一個成員是row類型,并不行直接将savetocassandra作用于jsonrdd,需要先作一步轉換即map過程

map中使用到的getxxx函數是在事先已知資料類型的情況下取出其值

最後savetocassandra觸發資料的存儲過程

另外一個地方值得記錄一下,如果在cassandra中建立的表使用了uuid作為primary key,在scala中使用如下函數來生成uuid

使用cqlsh來檢視資料是否已經真正的寫入到test.kv表中。

本次實驗結合了以下知識:

本文簡要介紹如何使用spark-cassandra-connector将json檔案導入到cassandra資料庫,這是一個使用spark的綜合性示例。

假設已經閱讀技術實戰之3,并安裝了如下軟體

jdk

scala

spark sql

spark rdd的轉換函數

根據論壇上的資訊,在sparkrelease計劃中,在spark 1.3中有将sparkr納入到發行版的可能。本文就提前展示一下如何安裝及使用sparkr.

sparkr的出現解決了r語言中無法級聯擴充的難題,同時也極大的豐富了spark在機器學習方面能夠使用的lib庫。sparkr和spark mllib将共同建構出spark在機器學習方面的優勢地位。

使用sparkr能讓使用者同時使用spark rdd提供的豐富api,也可以調用r語言中豐富的lib庫。

先決條件:

已經安裝好openjdk 7

安裝好了r

<b>安裝步驟:</b>

<b>步驟1</b>: 運作r shell

<b>步驟2</b>:在r shell中安裝rjava

<b>步驟3</b>: 在r shell中安裝devtools

<b>步驟4</b>: 安裝好rjava及devtools,接下來安裝sparkr

安裝完sparkr之後,可以用wordcount來檢驗安裝正确與否。

步驟1:在r shell中加載sparkr

步驟2:初始化sparkcontext及執行wordcount

如果想将sparkr運作于叢集環境中,隻需要将master=local,換成spark叢集的監聽位址即可

時間匆忙,還有兩件事情沒有來得及細細分析。

sparkr的代碼實作

如果很好的将r中支援的資料挖掘算法與spark并行化處理能力很好的結合