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.