2026年10月29日 星期四

【PySpark 大數據處理 03】資料匯入與輸出:無縫接軌 CSV、JSON 與 Parquet 格式

在了解 DataFrame 的強大之後,我們終於要讓 PySpark 處理真實世界的資料了!在企業的大數據專案中,資料來源五花八門,最常見的莫過於傳統的 CSV 報表、Web API 常用的 JSON 格式,以及在大數據生態系中佔有統治地位的 Parquet。今天這篇文章,我們將實作這三種格式的讀取與寫出,並解析為什麼大數據工程師都獨鍾 Parquet!

1. 傳統辦公室的最愛:CSV 格式

CSV (Comma-Separated Values) 是最平易近人的格式,幾乎所有的試算表軟體都能打開它。但在分散式運算中,CSV 有兩個致命傷:第一,它沒有自帶嚴謹的型態定義 (Schema),Spark 必須多花時間掃描推斷;第二,它讀取與切割的速度較慢。

【PySpark 大數據處理 02】駕馭資料的基礎:DataFrame 結構解析與 RDD 差異

在上一篇文章中,我們成功在 Google Colab 上啟動了 PySpark 運算環境。有了強大的引擎後,我們接著需要了解 Spark 是如何「裝載」資料的。在資管領域的課程中,我們經常強調資料結構的重要性,而在 Spark 的世界裡,有兩個你絕對不能不認識的名詞:RDD 與 DataFrame。

1. 時代的基石與眼淚:什麼是 RDD?

RDD (Resilient Distributed Dataset,彈性分散式資料集) 是 Spark 最早期、最底層的資料結構。你可以把它想像成一個被打散並分布在多台電腦上的「超級大陣列」。它非常靈活,可以塞入任何 Python 物件,但缺點是它「沒有結構 (Schema-less)」。

因為沒有定義欄位名稱與資料型態,Spark 的底層引擎(Catalyst Optimizer)無法提前知道你要對資料做什麼,也就無法幫你優化查詢路徑。這導致在處理海量資料時,直接撰寫 RDD 的程式碼既繁瑣又容易遇到效能瓶頸。

【PySpark 大數據處理 01】大數據運算起點:PySpark 核心概念與 Google Colab 零設定環境建置

【PySpark 大數據處理 01】大數據運算起點:PySpark 核心概念與 Google Colab 零設定環境建置

在資訊管理與數據分析的領域中,當資料量從 MB 級別成長到數百 GB 甚至是 TB 級別時,傳統單機版的 Python (如 Pandas) 往往會面臨記憶體不足或運算時間過長的瓶頸。為了處理這些海量資料,我們需要引入分散式運算 (Distributed Computing) 的概念,而 Apache Spark 正是目前業界最主流的大數據處理框架。這份系列教學源自於為碩一新生規劃的實務課程,我們將帶領大家一步步征服大數據分析!

熱門文章