初識大數據(十一)-----Spark SQL簡介

1. SparkSQL是什麼?

SparkSQL是分佈式SQL引擎,底層依賴RDD,處理結構化數據的一個模塊
在這裏插入圖片描述

2、SparkSQL的入口

SparkSession

val spark = SparkSession.builder().enableHiveSupport().getOrCreate

3. spark sql與hive的不同

1、Hive 是基於MapReduce框架實現SQL基本操作
2、Spark SQL擁有Catalyst優化器
3、Spark SQL能夠支持不同數據源

4、Spark能代替Hive嗎?

1、hive是數據倉庫,Spark SQL沒有自己的存儲,Hive集成HDFS
2、Spark SQL沒有自己的元數據管理,要依賴Hive
3、Hive有sqoop,flume等數據源同步配套組件
4、Hive只作爲存儲,Spark負責解析和執行

5、spark訪問hive倉庫

在這裏插入圖片描述
1、在 $Spark_HOME/conf下添加hive-site.xml文件
2、啓動thriftserver服務

./$Spark_HOME/sbin/start-thriftserver.sh

6、Spark運行原理

1、spark SQL執行計劃
在這裏插入圖片描述
在這裏插入圖片描述
2、catalyst優化器
在這裏插入圖片描述

7、Data frame和Data Set是什麼

1、和RDD一樣,都是Spark平臺下的分佈式彈性數據集
2、DF是以RDD爲基礎的分佈式數據集,是ROW對象的集合
3、DataSet是DataFrame的一個特例
4、DataSet是強類型的數據集,

在這裏插入圖片描述
5、創建DataFrame的方法
1、通過創建文件
1)json文件
sparkSession.read.json("/nginx/2424.json")
2)csv文件
sparkSession.read.csv(“nginx/234322.csv”)
3)parquet文件
sparksession.read.parquet("/nginx/2423.parquet")

2、通過RDD轉換爲DF
1)通過自定義case class
2)通過自定以schema

6、創建DataSet的方法
1、通過已存在的RDD來創建
2、通過DataFrame轉換生成

7、DataSet與RDD交互
toDS()將RDD轉換爲DataSet
rdd()將DataSet轉換爲RDD

欲瞭解更多相關知識,請關注公衆後:架構師Plus.
公衆號裏有彩蛋哦,有一個去視頻水印的工具,很好用哦.
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章