Pyspark讀取parquet數(shù)據(jù)過程解析
parquet數(shù)據(jù):列式存儲結(jié)構(gòu),由Twitter和Cloudera合作開發(fā),相比于行式存儲,其特點是:
可以跳過不符合條件的數(shù)據(jù),只讀取需要的數(shù)據(jù),降低IO數(shù)據(jù)量;壓縮編碼可以降低磁盤存儲空間,使用更高效的壓縮編碼節(jié)約存儲空間;只讀取需要的列,支持向量運算,能夠獲取更好的掃描性能。
那么我們怎么在pyspark中讀取和使用parquet數(shù)據(jù)呢?我以local模式,linux下的pycharm執(zhí)行作說明。
首先,導(dǎo)入庫文件和配置環(huán)境:
import os from pyspark import SparkContext, SparkConf from pyspark.sql.session import SparkSession os.environ["PYSPARK_PYTHON"]="/usr/bin/python3" #多個python版本時需要指定 conf = SparkConf().setAppName('test_parquet') sc = SparkContext('local', 'test', conf=conf) spark = SparkSession(sc)
然后,使用spark進行讀取,得到DataFrame格式的數(shù)據(jù):host:port 屬于主機和端口號
parquetFile = r"hdfs://host:port/Felix_test/test_data.parquet"
df = spark.read.parquet(parquetFile)
而,DataFrame格式數(shù)據(jù)有一些方法可以使用,例如:
1.df.first() :顯示第一條數(shù)據(jù),Row格式
print(df.first())
2.df.columns:列名
3.df.count():數(shù)據(jù)量,數(shù)據(jù)條數(shù)
4.df.toPandas():從spark的DataFrame格式數(shù)據(jù)轉(zhuǎn)到Pandas數(shù)據(jù)結(jié)構(gòu)
5.df.show():直接顯示表數(shù)據(jù);其中df.show(n) 表示只顯示前n行信息
6.type(df):顯數(shù)據(jù)示格式
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用Keras OCR實現(xiàn)從圖像中刪除文本
這篇文章主要為大家介紹了如何在Python中利用Keras OCR實現(xiàn)快速地從圖像中刪除文本,從而作為圖像分類器的預(yù)處理步驟,需要的可以參考一下2022-03-03Django REST framwork的權(quán)限驗證實例
這篇文章主要介紹了Django REST framwork的權(quán)限驗證實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04基于Django?websocket實現(xiàn)視頻畫面的實時傳輸功能(最新推薦)
Django?Channels?是一個用于在?Django框架中實現(xiàn)實時、異步通信的擴展庫,本文給大家介紹基于Django?websocket實現(xiàn)視頻畫面的實時傳輸案例,本案例是基于B/S架構(gòu)的視頻監(jiān)控畫面的實時傳輸,使用django作為服務(wù)端的開發(fā)框架,需要的朋友可以參考下2023-06-06python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫并查詢
這篇文章主要介紹了python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫并查詢,文章介紹詳細具有一定的參考價值,希望對你的學(xué)習(xí)有所幫助2022-04-04