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)