SparkSQL之External Data读写parquet
準備數據文件
在/home/iie4bu/app/spark-2.4.5-bin-2.6.0-cdh5.15.1/examples/src/main/resources路徑下有一個users.parquet文件。
查看parquet文件內容
package cn.ac.iie.sparkimport org.apache.spark.sql.SparkSession/*** Parquet文件操作*/ object ParquetApp {def main(args: Array[String]): Unit = {val sparksession = SparkSession.builder().appName("DataFrameCase").master("local[2]").getOrCreate()val df = sparksession.read.format("parquet").load("file:///E:/test/users.parquet")df.printSchema()df.show()sparksession.close()} }我們先簡單打印一下users.parquet文件內容是什么,輸出結果如下:
 
 
簡單查詢然后將結果輸出
object ParquetApp {def main(args: Array[String]): Unit = {val sparksession = SparkSession.builder().appName("DataFrameCase").master("local[2]").getOrCreate()val df = sparksession.read.format("parquet").load("file:///E:/test/users.parquet")df.printSchema()df.show()df.select("name", "favorite_numbers").write.format("json").save("file:///E:/test/users-result")sparksession.close()} }這樣就將結果保存到E:/test/users-result文件夾下了。
spark數據源如果沒有指定format,那么默認是parquet文件來處理。
val df2 = sparksession.read.load("file:///E:/test/users.json")會報錯,因為spark會默認是parquet文件格式。
使用Spark-SQL方式讀取parquet文件
啟動spark-sql:./spark-sql --master local[2] --jars /home/iie4bu/software/mysql-connector-java-5.1.35.jar --driver-class-path /home/iie4bu/software/mysql-connector-java-5.1.35.jar
CREATE TEMPORARY VIEW parquetTable USING org.apache.spark.sql.parquet OPTIONS (path "/home/iie4bu/app/spark-2.4.5-bin-2.6.0-cdh5.15.1/examples/src/main/resources/users.parquet" )查看剛創建的表:show tables
 
 查詢表內容:select * from parquettable
 
可以通過option方式導入數據
sparksession.read.format("parquet").option("path", "file:///E:/test/users.parquet").load(),這種方式與上面的方式效果是相同的。
總結
以上是生活随笔為你收集整理的SparkSQL之External Data读写parquet的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: SparkSQL之External Da
- 下一篇: SparkSQL之操作Hive
