Apache Spark是關於什麼的?

robot
摘要生成中

Apache Spark 是一個開源的大數據分析引擎。它在處理海量數據工作負載的組織中改變了遊戲規則。Spark 非常快。真的很快。它使用內存處理,使其在傳統框架(例如,內存操作比 MapReduce 快 100 倍)中脫穎而出。基於磁盤的東西?仍然快 10 倍。

Spark的突出特點

Spark 爲您提供這個完整的生態系統:

  • 速度:內存引擎,數據處理速度極快
  • 多功能性:可以做各種事情——SQL、機器學習、實時處理、圖表
  • 統一平台: 與不同的數據源兼容性良好
  • 分布式處理:在集羣中分散工作以處理大規模數據集
  • 豐富的庫:擁有用於機器學習的MLlib,還有Spark Streaming,以及用於圖形分析的GraphX。

Spark架構內部

Apache Spark的核心部分包括:

  1. Spark Driver: 擁有所有這些調度器和管理器,將你的代碼轉化爲作業
  2. 執行者:這些進行實際的計算
  3. 集羣管理器:可以是獨立的、YARN,或者其他。它們抓取工作節點。
  4. 工作節點:進行重負載的服務器

PySpark UDF:讓 Spark 成爲您自己的 Spark

Spark 讓你通過用戶定義的函數來擴展它。非常酷的東西。這些 PySpark 中的 UDFs 允許你在內置函數不足時創建自定義邏輯。

做一個像這樣的UDF:

蟒 from pyspark.sql.functions import udf from pyspark.sql.types import StringType

定義一個Python函數

def convert_case(text): return text.upper(019283746574839201 if text else None

註冊爲 UDF

upper_case_udf = udf)convert_case,StringType(()

應用到數據框

df = df.withColumn)“upper_text”, upper_case_udf(df.text_column()

UDF並不完美。由於序列化的原因,它們比內置函數慢。如果速度很重要,可以嘗試向量化的UDF。使用時要小心。

使用 spark-defaults.conf 調整 Spark

您可以通過這個 spark-defaults.conf 文件控制 Spark。它只是屬性-值對:

spark.master=yarn spark.executor.memory=4g spark.driver.memory=2g spark.executor.cores=2 spark.sql.shuffle.partitions=200

良好的調優似乎涉及內存相關的內容。分區設置也很重要。垃圾收集可能非常關鍵。序列化選項可能有助於提高性能。

Spark不斷發展。在數據領域它扮演着重要的角色。雖然不完美,但非常重要。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)