【大数据分析】Spark SQL查询:使用SQL命令
對于使用關系型數據庫或分布式數據庫的用戶可能更容易和更自然地使用SQL,比如Hive。在Spark SQL編寫SQL命令時,它們將被轉換為DataFrame上的操作。通過連接到Spark的Thrift服務器,它們可以通過標準的JDBC或ODBC協議從應用服務器連接到Spark。Spark支持兩種SQL方言:SQL和HQL。Spark社區推薦的是HQL,因為HQL具有更豐富的功能。要使用HQL,需要使用Hive支持的Spark發行版。除了帶來更強大的SQL解析器之外,Hive支持可讓用戶訪問現有的Hive表,并使用現有的社區構建的Hive UDF。通過在構建SparkSession時在Builder對象上調用enableHiveSupport(),可以在Spark上啟動Hive功能。
val spark = SparkSession.builder().enableHiveSupport().getOrCreate()1、表目錄和Hive metadata
大多數表SQL操作都是以名稱引用的。當使用Spark SQL來執行SQL查詢時,可以通過將DataFrame注冊為表來引用DataFrame。當這樣做時,Spark將表定義存儲在表目錄中。對于不支持Hive的Spark,表目錄實現為簡單的內存映射,這意味著表信息存在于驅動程序的內存中,并且隨著Spark會話的消失而消失。另外,Hive支持的SparkSession使用Hive metastore來實現表目錄。Hive metastore是一個持久性數據庫,所以即使會話消失了,DataFrame定義仍然可用。
(1)注冊臨時表
不管是不是Hive支持的Spark版本,都可以使用createOrRepl
總結
以上是生活随笔為你收集整理的【大数据分析】Spark SQL查询:使用SQL命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用DirectX播放音频数据流
- 下一篇: 计算机视觉公司 摘过来,以后看看