动态

详情 返回 返回

藍易雲cdn:PySpark安裝及WordCount實現(基於Ubuntu) - 动态 详情

以下內容將詳細介紹在 Ubuntu 系統上安裝 PySpark 並實現一個經典的 WordCount(單詞計數)示例
整個過程從環境配置到程序運行,結構清晰,邏輯嚴謹,適合數據工程入門與分佈式計算基礎學習 🧠。


🚀 一、PySpark 概述

PySpark 是 Apache Spark 的 Python 接口,它將分佈式計算框架與 Python 生態結合,能在多節點環境下對大規模數據進行高效處理。
核心組件包括:

  • Spark Core:分佈式任務調度與內存計算。
  • Spark SQL:結構化數據查詢。
  • Spark Streaming:流式數據分析。
  • MLlib:機器學習庫。
✅ 本文重點:安裝 PySpark 並運行 WordCount 程序。

🧩 二、系統環境準備

項目 推薦版本 説明
操作系統 Ubuntu 22.04 / 24.04 穩定且兼容性好
Python ≥ 3.8 Spark 支持較新 Python 版本
Java ≥ 11 Spark 依賴 JVM 運行環境
Spark 3.5.x 最新穩定版本,性能優化明顯

⚙️ 三、安裝步驟

1️⃣ 安裝 Java(OpenJDK)

sudo apt update
sudo apt install openjdk-17-jdk -y

解釋:

  • openjdk-17-jdk 是 Java 開發工具包,Spark 運行時需要。
  • 安裝後可驗證:

    java -version

    若輸出包含 openjdk version "17",説明安裝成功。


2️⃣ 安裝 Python 及 pip

sudo apt install python3 python3-pip -y

解釋:

  • Python 用於運行 PySpark 腳本。
  • pip 是 Python 的包管理器,用於安裝依賴。

3️⃣ 安裝 Spark(推薦使用官方壓縮包)

cd /opt
sudo wget https://dlcdn.apache.org/spark/spark-3.5.3/spark-3.5.3-bin-hadoop3.tgz
sudo tar -xvf spark-3.5.3-bin-hadoop3.tgz
sudo mv spark-3.5.3-bin-hadoop3 /usr/local/spark

解釋:

  • spark-3.5.3-bin-hadoop3 是預編譯版本,無需自行編譯。
  • 解壓後移動至系統目錄 /usr/local/spark,便於管理。

4️⃣ 配置環境變量

編輯 ~/.bashrc

sudo nano ~/.bashrc

在文件末尾添加:

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_PYTHON=python3

保存後執行:

source ~/.bashrc

解釋:

  • 設置 Spark路徑Python解釋器
  • 讓系統在任意目錄下可直接運行 pyspark 命令。

5️⃣ 安裝 PySpark(Python 接口)

pip install pyspark

解釋:

  • 此命令會自動安裝與當前 Spark 兼容的 PySpark 庫。
  • 可通過 python3 -m pyspark 驗證是否正常啓動。

🧠 四、WordCount 實現

/home/ubuntu/ 下創建腳本 wordcount.py

from pyspark import SparkContext, SparkConf

# 創建Spark配置與上下文
conf = SparkConf().setAppName("WordCount").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 讀取文本文件
text = sc.textFile("input.txt")

# 執行單詞計數
counts = (text.flatMap(lambda line: line.split(" "))
               .map(lambda word: (word, 1))
               .reduceByKey(lambda a, b: a + b))

# 保存結果
counts.saveAsTextFile("output")

sc.stop()

代碼解釋表:

行號 代碼片段 作用説明
1-2 SparkContext 初始化 創建執行上下文
5 textFile() 讀取文件並分佈式加載
7 flatMap() 按空格拆分為單詞列表
8 map() 將每個單詞映射為 (word, 1)
9 reduceByKey() 對相同單詞進行求和
11 saveAsTextFile() 輸出結果到指定目錄
13 sc.stop() 關閉 Spark 任務

🧮 五、執行命令

確保當前目錄下有輸入文件:

echo "hello spark hello world" > input.txt

然後運行:

spark-submit wordcount.py

運行成功後,可查看結果:

cat output/part-00000

輸出示例:

('hello', 2)
('spark', 1)
('world', 1)

📊 六、執行流程説明圖

flowchart TD
A[讀取文本 input.txt] --> B[flatMap 拆分單詞]
B --> C[map 映射成 (word,1)]
C --> D[reduceByKey 聚合計數]
D --> E[輸出結果到 output 文件夾]

🔧 七、常見問題與優化建議

問題 原因分析 解決方案
找不到 Java 環境變量未配置 確認 JAVA_HOME 設置正確
PySpark 啓動慢 依賴過多或網絡延遲 使用本地模式 local[*]
輸出目錄已存在 Spark 不允許覆蓋 刪除舊輸出 rm -rf output/

✅ 八、總結

🔹 PySpark 結合 Spark 的分佈式計算能力與 Python 的易用性,可在 大數據分析、日誌統計、機器學習前處理 等場景中廣泛應用。
🔹 WordCount 作為入門案例,展示了 RDD 操作鏈 的完整流程,從數據加載到分佈式聚合。
🔹 在生產環境中,可進一步接入 HDFS、Hive、Kafka 實現大規模數據流處理。


🔥 一句話總結:
在 Ubuntu 上配置好 Java 與 Spark 環境後,使用 PySpark 僅需幾行代碼即可實現高效並行的數據處理,是現代數據工程的基礎技能之一。

user avatar kevinarcsin001 头像 gushiio 头像 kongxudexiaoxiongmao 头像 MrYU4 头像
点赞 4 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.