SQLContext与HiveContext的使用

SQLContext的使用

SQLContext在Spark1.6中使用,在spark2.x中已经标记为过时,不推荐使用。

示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.anthony.spark
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}

/**
* @Description: SQLContext的使用
* @Date: Created in 07:09 2018/3/28
* @Author: Anthony_Duan
*/

object SQLContextApp {

def main(args: Array[String]): Unit = {

val path = args(0)

//1)创建相应的Context
val sparkConf = new SparkConf()

// 在生产上通过脚本的方式指定
// sparkConf.setAppName("SQLContextApp").setMaster("local[2]")

val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)

//2)相关处理:json
val people = sqlContext.read.format("json").load(path)
people.printSchema()
people.show()

//3)关闭资源
sc.stop()
}
}
提交

这里我使用一个shell文件作为示例

  1. vim HiveContext.sh
  2. chmod +x HiveContext
  3. 写入内容如下
    1
    2
    3
    4
    5
    6
    spark-submit \
    --name SQLContextApp \
    --class com.anthony.spark.SQLContextApp \
    --master local[2] \
    /Users/duanjiaxing/lib/sql-1.0.jar \
    /Users/duanjiaxing/data/test.json

HiveContext的使用

HiveContext也是已经过时的不推荐使用。

相关配置

如果想要用spark访问hive的表需要进行一下的配置

  1. 拷贝 ${HIVE_HOME}/conf/hive-site.xml${SPARK_HOME}/conf
  2. 在pom.xml文件中添加一下依赖
1
2
3
4
5
6
<!--添加hive依赖-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.anthony.spark
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.hive.HiveContext

/**
* @Description:
* @Date: Created in 07:58 2018/3/28
* @Author: Anthony_Duan
*/
object HiveContextApp {

def main(args: Array[String]): Unit = {

//1)创建相应的Context
val sparkConf = new SparkConf()

// 在生产上通过脚本的方式指定
// sparkConf.setAppName("SQLContextApp").setMaster("local[2]")

val sc = new SparkContext(sparkConf)
val hiveContext = new HiveContext(sc)

//2)相关处理:hiveTable
hiveContext.table("emp").show()

//3)关闭资源
sc.stop()
}
}
提交注意事项

使用mvn clean package -DskipTests 编译后会有一个jar包
然后将jar提交到spark上执行的时候需要指定mysql的连接驱动 通过–jars指定mysql驱动的绝对路径
这里我使用一个shell文件作为示例

  1. vim HiveContext.sh
  2. chmod +x HiveContext
  3. 写入内容如下
    1
    2
    3
    4
    5
    spark-submit \
    --class com.anthony.spark.HiveContextApp \
    --master local[2] \
    --jars /Users/duanjiaxing/software/mysql-connector-java-5.1.27-bin.jar \
    /Users/duanjiaxing/lib/sql-1.0.jar
-------------End Of This ArticleThank You For Reading-------------