Apache Spark 是一个开源的统一分析引擎,用于大规模数据处理。它提供了一个简单且富有表现力的编程模型,支持多种语言,包括 Java、Scala、Python 和 R。Spark 的速度比 Hadoop MapReduce 快 100 倍,因为它在内存中执行计算,并优化了数据在集群中的移动方式。
Spark 核心概念
Spark 工作流
大数据工程师2024-Spark应用
from pyspark.sql import SparkSession
# 初始化 SparkSession
spark = SparkSession.builder \
.appName("Spark数据处理示例") \
.getOrCreate()
# 读取数据
data = [("Alice", 25), ("Bob", 30), ("Charlie", 28)]
df = spark.createDataFrame(data, ["name", "age"])
# 数据处理
# 1. 使用filter过滤年龄大于28岁的数据
df_filtered = df.filter(df.age > 28)
# 2. 使用groupBy分组统计每个年龄的人数
df_grouped = df.groupBy("age").count()
# 3. 使用join连接两个DataFrame
data2 = [("Alice", "female"), ("Bob", "male"), ("David", "male")]
df2 = spark.createDataFrame(data2, ["name", "gender"])
df_joined = df.join(df2, on="name", how="inner")
# 显示结果
df_filtered.show()
df_grouped.show()
df_joined.show()
# 停止 SparkSession
spark.stop()
spark.createDataFrame
从 Python 列表创建 DataFrame,DataFrame 是 Spark 中的数据抽象,类似于关系型数据库中的表。filter
过滤年龄大于 28 岁的数据。groupBy
按年龄分组,并使用 count
统计每组人数。join
将两个 DataFrame 按照姓名进行内连接。show()
方法展示处理后的 DataFrame 内容。spark.stop()
停止 SparkSession,释放资源。spark-submit spark_data_processing.py
+------+---+
| name|age|
+------+---+
| Bob| 30|
+------+---+
+---+-----+
|age|count|
+---+-----+
| 25| 1|
| 30| 1|
| 28| 1|
+---+-----+
+------+---+------+
| name|age|gender|
+------+---+------+
| Bob| 30| male|
|Alice| 25|female|
+------+---+------+
1. 数仓概念
数据仓库 (Data Warehouse) 是一个面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理决策。
2. 数仓架构
2.1. 传统数仓架构
2.2. 现代数仓架构
随着大数据技术的兴起,现代数仓架构更加灵活和可扩展,例如:
3. 数仓建设流程
4. 数仓关键技术
5. 数仓最佳实践
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。