Spark SQL支持读取多种数据来源的数据,支持从HBase中读取数据,本节将实现从以Java的方式,通过Spark连接hbaseTest进行业务处理的案例:查询出HBase中满足设定的起始行至终止行条件的用户,统计各个级别用户的计数。
本节Spark SQL操作HBase案例中,HBase数据库表名是“usertable”;info是列族,是列的集合,一个列族中包含多个列,info列族包括级别代码列(levelCode),以及其他的列;Row Key是行键,记录每行的行ID值。
Spark SQL操作HBase案例具体实现步骤:
1)初始化sparkContext,通过jars参数加载Hbase的JAR文件。
2)创建HBase的Configuration配置文件。
3)设置Hbase的查询条件。
Hbase Scan的相关操作说明:
●setStartRow(byte[]startRow):设置Scan的开始行。
●setStopRow(byte[]stopRow):设置Scan的结束行。
●addColumn(byte[]family,byte[]qualifier):指定扫描的列。
●addFamily(byte[]family):指定扫描的列族。
4)设置读取的Hbase表名。
5)获取获得hbase查询结果Result。(www.xing528.com)
6)从查询结果result中取出用户的等级,每次计数1次。
7)使用reduceByKey进行计数累加。
8)打印最终结果。
Spark SQL操作HBase案例运行环境准备:
●部署Hadoop集群。
●部署Hbase集群。
●部署Spark集群。
1.代码实现
2.输出结果
将上述代码打成JAR包,通过SparkSubmit向Spark集群提交运行,输出结果如下:
Spark SQL作为Spark大数据计算生态中一个重要的子项目,主要用来操作数据库,它提供了很多方法来操作不同的数据库,使得其可操作的数据来源变得非常广泛。Spark SQL提供的大量的API不仅易于使用,而且功能强大,不仅可以操作Hive、HBase等基于HDFS(Hadoop Distributed File System)的数据库,而且可以操作MySQL、Oracle等传统的关系型数据库,还可以操作MongoDB等NoSQL非关系型数据库,甚至可以操作Kafka分布式消息系统。Spark SQL支持多语言编程,包括Java、Scala、Python及R。
以下我们采用Spark SQL分别操作MySQL、MongoDB数据库的内容,采用2.10.4版本的Scala语言开发,Spark版本是1.6.1,采用的操作系统是64位Ubuntu kylin-15.10-desktop,集成开发环境是IntelliJ IDEA。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。