Spark讀寫parquet

Spark的parquet介紹

  • 列式存儲佈局可加速查詢,只檢查需要的列並對執行計算,也就是隻讀取一個數據文件或表的小部分數據。
  • Parquet 支持靈活的壓縮選項,可以顯著減少磁盤上的存儲。
  • 轉換需要時間,時間長了一些。
  • 查詢性能的提升在某些情況下可能達到 30 倍或更高,存儲的節省可高達 75%。

如果在 HDFS 上擁有基於文本的數據文件或表,而且正在使用 Spark SQL 對它們執行查詢,那麼強烈推薦將文本數據文件轉換爲 Parquet 數據文件,以實現性能和存儲收益。

1. 讀取parquet

dtParquet = spark.read.parquet("sp路徑")
dtParquet.show(5)

可以直接read一個parquet文件,就轉成了dataframe。因爲parquet文件裏有比較豐富的信息,不像普通的文件。所以推薦是把其他文件的格式,清洗後轉換成parquet數據格式。

2. 轉成 parquet 文件再讀

# SAMPLE 10% OF DATA, SPLIT INTO TRAIINING AND VALIDATION AND SAVE IN BLOB
dfSampled = df.sample(False, 0.1, seed=123)
dfSampled.repartition(10).write.mode("overwrite").parquet("sp路徑")
dtParquet = spark.read.parquet("sp路徑")
dtParquet.show(5)

參考:spark 讀取parquet

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