什么網(wǎng)站可以做拍a發(fā)布會(huì)杭州seo網(wǎng)站
💝💝💝歡迎來(lái)到我的博客,很高興能夠在這里和您見(jiàn)面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見(jiàn)解。
- 推薦:kwan 的首頁(yè),持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老
- 導(dǎo)航
- 檀越劍指大廠系列:全面總結(jié) java 核心技術(shù),jvm,并發(fā)編程 redis,kafka,Spring,微服務(wù)等
- 常用開(kāi)發(fā)工具系列:常用的開(kāi)發(fā)工具,IDEA,Mac,Alfred,Git,typora 等
- 數(shù)據(jù)庫(kù)系列:詳細(xì)總結(jié)了常用數(shù)據(jù)庫(kù) mysql 技術(shù)點(diǎn),以及工作中遇到的 mysql 問(wèn)題等
- 新空間代碼工作室:提供各種軟件服務(wù),承接各種畢業(yè)設(shè)計(jì),畢業(yè)論文等
- 懶人運(yùn)維系列:總結(jié)好用的命令,解放雙手不香嗎?能用一個(gè)命令完成絕不用兩個(gè)操作
- 數(shù)據(jù)結(jié)構(gòu)與算法系列:總結(jié)數(shù)據(jù)結(jié)構(gòu)和算法,不同類(lèi)型針對(duì)性訓(xùn)練,提升編程思維,劍指大廠
非常期待和您一起在這個(gè)小小的網(wǎng)絡(luò)世界里共同探索、學(xué)習(xí)和成長(zhǎng)。💝💝💝 ?? 歡迎訂閱本專(zhuān)欄 ??
博客目錄
- 1.Parquet 文件簡(jiǎn)介
- 2.環(huán)境準(zhǔn)備
- 3.讀取 Parquet 文件
- 4.數(shù)據(jù)清洗
- 5.數(shù)據(jù)合并
- 6.寫(xiě)入 Parquet 文件
- 7.性能優(yōu)化
- 8.總結(jié)
在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的存儲(chǔ)、處理和分析變得尤為重要。Parquet 作為一種高效的列存儲(chǔ)格式,被廣泛應(yīng)用于大數(shù)據(jù)處理框架中,如 Apache Spark、Apache Hive 等。
1.Parquet 文件簡(jiǎn)介
Parquet 是一個(gè)開(kāi)源的列存儲(chǔ)格式,它被設(shè)計(jì)用于支持復(fù)雜的嵌套數(shù)據(jù)結(jié)構(gòu),同時(shí)提供高效的壓縮和編碼方案,以?xún)?yōu)化存儲(chǔ)空間和查詢(xún)性能。Parquet 文件可以被多種數(shù)據(jù)處理工具讀取和寫(xiě)入,包括 Hadoop、Pig、Hive 等。
2.環(huán)境準(zhǔn)備
在開(kāi)始之前,確保你的 Python 環(huán)境中已經(jīng)安裝了 Pandas 庫(kù)和 pyarrow(用于讀寫(xiě) Parquet 文件)。如果尚未安裝,可以通過(guò)以下命令進(jìn)行安裝:
pip install pandas pyarrow
import pandas as pdpath1 = 'create_final_entities.parquet'path2 = '1111/create_final_entities.parquet'# 讀取Parquet文件
df1 = pd.read_parquet(path1)
df2 = pd.read_parquet(path2)# 修改df1中每一條記錄的name字段首尾的引號(hào)
df1['name'] = df1['name'].str.strip('"')
df1['type'] = df1['type'].str.strip('"')
df1['description'] = df1['description'].str.strip('"')# 合并兩個(gè)DataFrame
df_combined = pd.concat([df1, df2], ignore_index=True)# 定義新文件的路徑
output_path = '2222/create_final_entities.parquet'# 將合并后的數(shù)據(jù)寫(xiě)入新的Parquet文件
df_combined.to_parquet(output_path)
3.讀取 Parquet 文件
在 Python 腳本中,我們首先導(dǎo)入必要的庫(kù),并定義 Parquet 文件的路徑。使用pd.read_parquet()
函數(shù)可以輕松讀取 Parquet 文件到 DataFrame 對(duì)象中。示例中,我們有兩個(gè) Parquet 文件,分別存儲(chǔ)在不同的路徑下。
import pandas as pdpath1 = 'create_final_entities.parquet'
path2 = '1111/create_final_entities.parquet'df1 = pd.read_parquet(path1)
df2 = pd.read_parquet(path2)
4.數(shù)據(jù)清洗
在實(shí)際的數(shù)據(jù)操作過(guò)程中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行清洗,以確保數(shù)據(jù)的質(zhì)量和一致性。在本例中,我們對(duì)df1
中的name
、type
和description
字段進(jìn)行了清洗,去除了字段值首尾的引號(hào)。
df1['name'] = df1['name'].str.strip('"')
df1['type'] = df1['type'].str.strip('"')
df1['description'] = df1['description'].str.strip('"')
5.數(shù)據(jù)合并
數(shù)據(jù)合并是數(shù)據(jù)分析中常見(jiàn)的操作之一。在本例中,我們使用pd.concat()
函數(shù)將兩個(gè) DataFrame 對(duì)象合并為一個(gè)新的 DataFrame。ignore_index=True
參數(shù)確保合并后的 DataFrame 索引是連續(xù)的,而不是重復(fù)的。
df_combined = pd.concat([df1, df2], ignore_index=True)
6.寫(xiě)入 Parquet 文件
完成數(shù)據(jù)合并后,我們通常需要將結(jié)果保存到新的文件中。使用to_parquet()
函數(shù)可以將 DataFrame 對(duì)象寫(xiě)入 Parquet 文件。在寫(xiě)入之前,我們需要定義新文件的存儲(chǔ)路徑。
output_path = '2222/create_final_entities.parquet'
df_combined.to_parquet(output_path)
7.性能優(yōu)化
在處理大規(guī)模數(shù)據(jù)時(shí),性能是一個(gè)重要的考慮因素。Parquet 格式本身就提供了高效的壓縮和編碼方案,但我們還可以通過(guò)以下方式進(jìn)一步優(yōu)化性能:
- 選擇合適的列進(jìn)行讀取:如果只需要部分列,可以在讀取時(shí)指定列,減少內(nèi)存消耗。
- 使用分區(qū)存儲(chǔ):如果數(shù)據(jù)集很大,可以考慮使用 Hive 或 Impala 等工具進(jìn)行分區(qū)存儲(chǔ),以?xún)?yōu)化查詢(xún)性能。
- 并行處理:利用 Python 的多線程或多進(jìn)程能力,或者使用 Spark 等分布式計(jì)算框架進(jìn)行并行處理。
8.總結(jié)
通過(guò)上述步驟,我們展示了如何使用 Python 和 Pandas 庫(kù)對(duì) Parquet 文件進(jìn)行高效的數(shù)據(jù)處理和合并。Parquet 文件格式以其高效的存儲(chǔ)和查詢(xún)性能,在大數(shù)據(jù)處理領(lǐng)域中扮演著重要角色。掌握這些基本操作,將有助于數(shù)據(jù)分析師和工程師在面對(duì)大規(guī)模數(shù)據(jù)集時(shí),更加高效地進(jìn)行數(shù)據(jù)處理和分析工作。
覺(jué)得有用的話(huà)點(diǎn)個(gè)贊
👍🏻
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評(píng)論批評(píng)指正!😄😄😄💘💘💘如果覺(jué)得這篇文對(duì)你有幫助的話(huà),也請(qǐng)給個(gè)點(diǎn)贊、收藏下吧,非常感謝!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且長(zhǎng),行則將至,讓我們一起加油吧!🌙🌙🌙