Pyspark讀取parquet數(shù)據(jù)過程解析
parquet數(shù)據(jù):列式存儲(chǔ)結(jié)構(gòu),由Twitter和Cloudera合作開發(fā),相比于行式存儲(chǔ),其特點(diǎn)是:
可以跳過不符合條件的數(shù)據(jù),只讀取需要的數(shù)據(jù),降低IO數(shù)據(jù)量;壓縮編碼可以降低磁盤存儲(chǔ)空間,使用更高效的壓縮編碼節(jié)約存儲(chǔ)空間;只讀取需要的列,支持向量運(yùn)算,能夠獲取更好的掃描性能。
那么我們?cè)趺丛趐yspark中讀取和使用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" #多個(gè)python版本時(shí)需要指定 conf = SparkConf().setAppName('test_parquet') sc = SparkContext('local', 'test', conf=conf) spark = SparkSession(sc)
然后,使用spark進(jìn)行讀取,得到DataFrame格式的數(shù)據(jù):host:port 屬于主機(jī)和端口號(hào)
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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python開發(fā)利器之ulipad的使用實(shí)踐
Ulipad是一個(gè)國人limodou編寫的專業(yè)Python編輯器,它基于wxpython開發(fā)的GUI(圖形化界面)。下面這篇文章主要介紹了python開發(fā)利器之ulipad的使用實(shí)踐,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03Python使用Keras OCR實(shí)現(xiàn)從圖像中刪除文本
這篇文章主要為大家介紹了如何在Python中利用Keras OCR實(shí)現(xiàn)快速地從圖像中刪除文本,從而作為圖像分類器的預(yù)處理步驟,需要的可以參考一下2022-03-03Django REST framwork的權(quán)限驗(yàn)證實(shí)例
這篇文章主要介紹了Django REST framwork的權(quán)限驗(yàn)證實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python文件夾分區(qū)的實(shí)現(xiàn)方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python文件夾分區(qū)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04基于Django?websocket實(shí)現(xiàn)視頻畫面的實(shí)時(shí)傳輸功能(最新推薦)
Django?Channels?是一個(gè)用于在?Django框架中實(shí)現(xiàn)實(shí)時(shí)、異步通信的擴(kuò)展庫,本文給大家介紹基于Django?websocket實(shí)現(xiàn)視頻畫面的實(shí)時(shí)傳輸案例,本案例是基于B/S架構(gòu)的視頻監(jiān)控畫面的實(shí)時(shí)傳輸,使用django作為服務(wù)端的開發(fā)框架,需要的朋友可以參考下2023-06-06python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫并查詢
這篇文章主要介紹了python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫并查詢,文章介紹詳細(xì)具有一定的參考價(jià)值,希望對(duì)你的學(xué)習(xí)有所幫助2022-04-04Pygame改編飛機(jī)大戰(zhàn)制作兔子接月餅游戲
一年中秋又快到了,今年加入了Python的學(xué)習(xí)行列,得益于Python的開發(fā)效率和易讀性,網(wǎng)上寫文章的次數(shù)多了起來,既然是中秋節(jié)那肯定要搞個(gè)應(yīng)景的游戲才行2022-09-09