牛骨文教育服务平台(让学习变的简单)
博文笔记

GIS+=地理信息+行业+大数据——Spark集群下SPARK SQL开发测试介绍

创建时间:2016-02-24 投稿人: 浏览次数:3427

Spark集群下SPARK SQL开发介绍

      在之前的文章《SPARK for IntelliJ IDEA 开发环境部署》中已经完成了对开发环境的搭建工作,下面就可以开发程序了。对于GIS的数据分析需要通过SQL查询和空间查询来实现对空间数据的查询和检索。而Spark SQL是进行属性查询的主要工具,下面就利用Spark SQL技术针对自己组织的数据进行SQL查询的功能开发。

开发环境

      操作系统:Ubuntu 14

      开发工具:IntelliJ IDEA 15

      开发语言:scala 2.10.6

      Java版本:JDK 1.7

      开发的功能主要是模拟一个json数据文件,在集群环境下读取该数据,并对其数据进行sql查询。下面开始开发,创建一个scala类文件命名为mysqltest,代码如下:

01.import org.apache.spark.sql.SQLContext 02.import org.apache.spark.{SparkContext, SparkConf} 03.import scala.sys.SystemProperties 04.  05.object mysqltest { 06.def main(args: Array[String]) { 07.val sparkConf=new SparkConf().setAppName("mysqltest") 08.sparkConf.setMaster("spark://192.168.12.154:7077") 09.val sc=new SparkContext(sparkConf) 10.sc.addJar("/home/test.jar") 11.val sqlContext = new SQLContext(sc) 12.val dd=new SystemProperties() 13.val sparkhome=dd.get("SPARK_HOME") 14.val _ar=args 15.val sss=sys.props 16.val sparkhomepath="/home/sougou.json" 17.val sougou = sqlContext.read.json(sparkhomepath) 18.//    输出schema结构 19.sougou.printSchema() 20.//    注册DataFrame 为一个table. 21.sougou.registerTempTable("sougou") 22.//    通过sqlContext对象进行SQL查询 23.var arry=sqlContext.sql("SELECT * FROM sougou WHERE num >= 13 AND num <= 100") 24.//show方法默认显示20条记录的结果记录 25.arry.show() 26.sc.stop() 27.} 28.}

      注:在开发调试状态下需要添加setMaster和addJar方法

      

      为了测试程序在Spark集群环境下的分布式计算的效果,需要把程序打成jar包,才能运行在spark 集群中,可以按照以下步骤操作:依次选择“File”–> “Project Structure” –> “Artifact”,选择“+”–> “Jar” –> “From Modules with dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。

                                               


     

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。