Spark1.x中Spark SQL的入口点:SQLContext
下面是摘自官网的介绍
The entry point into all functionality in Spark SQL is the SQLContext class,
or one of its descendants. To create a basic SQLContext, all you need is a SparkContext.
val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
// this is used to implicitly convert an RDD to a DataFrame.
import sqlContext.implicits._
下面我们来在IDEA中构建一个SQLContext的示例
下一步我的name为SQLContext(随意),kind选择Object,代码如下所示,代码是为了处理一份json数据,展现文件的相关的内容。在生产环境中,我们的数据大多在服务器上,这里为了方便,我们在本地准备一份数据方便测试,路径在我D盘的根目录下,文件名为people.json
package com.zgw.spark
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SQLContext
/**
* SQLContext的使用
*
*/
object SQLContestApp {
def main(args: Array[String]): Unit = {
val path = args(0)
//1.创建相应的Context
val sparkConf = new SparkConf()
sparkConf.setAppName("SQLContestApp") //设置应用程序的名字
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
//进行相关的处理,(处理json文件)
val people = sqlContext.read.format("json").load(path) //传递文件格式和路径
people.printSchema()//展示文件内容
people.show()
//关闭资源
sc.stop()
}
}
我们通过设置参数我们的测试数据传入到IDEA
在VM options中添加配置初始堆和最大堆的大小:运行
文档结构打印出来了
我们使用maven package对程序进行打包并传至linux通过脚本执行
spark-submit \
--name SQLContextApp \
--class Sparksql.SQLContextApp \
--master local[2] \
/home/hadoop/sql-1.0.jar \
/home/hadoop/data/people.json
可以看到程序也是执行成功的
参考:https://spark.apache.org/docs/1.6.1/sql-programming-guide.html#starting-point-sqlcontext