天天看点

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并行化处理能力很好的结合