前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《SparkSql使用教程》--- 大数据系列

《SparkSql使用教程》--- 大数据系列

作者头像
用户3467126
发布2019-07-03 18:11:10
9310
发布2019-07-03 18:11:10
举报
文章被收录于专栏:爱编码爱编码爱编码

一、SQLContext、HiveContext、SparkSession

SQLContext:是spark sql的一个分支入口,可以用来操作sql,这个主要是针对spark来说

HiveContext:是spark sql中另外分支,用来操作hive。

SparkSession:Spark2.0中引入了SparkSession的概念,它为用户提供了一个统一的切入点来使用Spark的各项功能,用户不但可以使用DataFrame和Dataset的各种API

DataFrame和Dataset

DataFrame:

在Spark中,DataFrame是一种以RDD为基础的分布式数据据集,类似于传统数据库听二维表格,DataFrame带有Schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。

. Dataset: Dataset是特定域对象中的强类型集合,它可以使用函数或者相关操作并行地进行转换等操作。每个Dataset都有一个称为DataFrame的非类型化的视图,这个视图是行的数据集。

更多相关知识可以点击原文链接

以下基于spark2.3.1

二、SQLContext的使用

1、建一个Scala应用程序
/**
  * SQLContext的使用
  *
  */object SQLContextApp {

  def main(args: Array[String]): Unit = {
    val path = args(0)    //1)创建相应的context
    val sqlConf = new SparkConf()    //生成环境中,通过命令来指定比较好一点//    sqlConf.setAppName("SQLContextApp").setMaster("local[2]")
    val sc = new SparkContext(sqlConf)
    val sqlContext = new SQLContext(sc)//    2)相关处理:json
   val people = sqlContext.read.format("json").load(path)
    people.printSchema()
    people.show()//    3)关闭资源
    sc.stop()
  }

}
2、编写执行的文件 SQLContextApp.sh文件
vi SQLContextApp.sh 添加下面的shell
spark-submit \
--name SQLContextApp
 --class com.zero.spark.SQLContextApp \
 --master local[2] \
 /root/lib/sqlspark-1.0.jar \
 /root/app/spark-2.3.0/examples/src/main/resources/people.json

三、HiveContext的使用

1、首先要添加相应的依赖
<dependency>
   <groupId>org.apache.spark</groupId>
  <artifactId>spark-hive_2.11</artifactId>
   <version>${spark.version}</version>
</dependency>
2、建一个Scala应用程序
/**
  * hiveContext的使用
  */object HiveContextApp {

  def main(args: Array[String]): Unit = {    //1)创建相应的context
    val sqlConf = new SparkConf()    //生成环境中,通过命令来指定比较好一点
    //    sqlConf.setAppName("SQLContextApp").setMaster("local[2]")
    val sc = new SparkContext(sqlConf)
    val hiveContext = new HiveContext(sc)    //2)相关处理:json

    hiveContext.table("emp").show()    //3)关闭资源
    sc.stop()
  }

}
3、编写执行的文件 HiveContextApp.sh文件
vi HiveContextApp.sh 添加下面的shell
spark-submit \
 --name SQLContextApp \
 --jars /root/software/mysql-connector-java-5.1.27.jar \
  --class com.zero.spark.HiveContextApp \
  --master local[2] \
  /root/lib/sqlspark-1.0.jar \

四、SparkSession的使用

1、建一个Scala应用程序
/**
  * SparkSession的使用
  */object SparkSessionApp {

  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("SparkSessionApp").master("local[2]").getOrCreate()

    val people = spark.read.format("json").load("D:/IDEAWORK/sparkdat/people.json")//    val people = spark.read.json()
    people.show()
    spark.stop()
  }
}

特别注意

如果需要连接数据的话,需要添加 jdbc连接 添加依赖

<dependency>
   <groupId>org.spark-project.hive</groupId>
   <artifactId>hive-jdbc</artifactId>
   <version>1.2.1.spark2</version>
</dependency>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱编码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SQLContext、HiveContext、SparkSession
  • SQLContext:是spark sql的一个分支入口,可以用来操作sql,这个主要是针对spark来说
  • HiveContext:是spark sql中另外分支,用来操作hive。
  • SparkSession:Spark2.0中引入了SparkSession的概念,它为用户提供了一个统一的切入点来使用Spark的各项功能,用户不但可以使用DataFrame和Dataset的各种API
    • DataFrame和Dataset
    • 二、SQLContext的使用
    • 三、HiveContext的使用
    • 四、SparkSession的使用
    • 特别注意
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档