10 数据读取与处理之加载数据源

在Apache Spark中,数据的加载与处理是一个核心功能。理解如何有效地从不同的数据源中加载数据,对于构建高效的数据处理应用至关重要。本篇将深入探讨如何使用Spark加载数据源,为接下来的数据转化奠定坚实的基础。

1. 数据源概述

Apache Spark支持多种数据源,包括但不限于:

  • 本地文件系统:如CSV、JSON、Parquet等格式的文件。
  • 分布式文件系统:如HDFS(Hadoop Distributed File System)和S3(Amazon Simple Storage Service)。
  • 数据库:关系型数据库,如MySQL、PostgreSQL等,通过JDBC连接。
  • 实时数据流:通过Kafka等消息中间件进行数据流处理。

在这一部分,我们将讨论如何从不同的数据源中加载数据。

2. 加载本地文件系统的数据

要加载本地文件系统中的数据,我们可以使用Spark的read API。以下是加载CSV文件的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
from pyspark.sql import SparkSession

# 创建SparkSession
spark = SparkSession.builder \
.appName("Data Loading Example") \
.getOrCreate()

# 加载CSV文件
df = spark.read.csv("path/to/your/data.csv", header=True, inferSchema=True)

# 显示数据
df.show()

在这段代码中,我们首先创建一个SparkSession,然后使用read.csv方法从指定路径加载CSV文件。参数header=True表示CSV文件的第一行将作为列名,而inferSchema=True会自动推断每一列的数据类型。

3. 加载HDFS中的数据

要加载HDFS中的数据,方法与本地文件系统相似。只需将路径替换为HDFS路径即可,代码如下:

1
2
3
4
5
# 从HDFS加载CSV文件
df_hdfs = spark.read.csv("hdfs://namenode:9000/path/to/your/data.csv", header=True, inferSchema=True)

# 显示数据
df_hdfs.show()

在实际应用中,确保Spark能够访问所需的HDFS路径,并且已正确定义HDFS的名称节点地址。

4. 加载JSON数据

除了CSV,Spark还支持加载JSON格式的数据。以下是示例代码:

1
2
3
4
5
# 加载JSON文件
df_json = spark.read.json("path/to/your/data.json")

# 显示数据
df_json.show()

对于JSON文件,Spark会自动推断列的模式,你可以直接使用show()方法查看数据。

5. 加载Parquet数据

Parquet是一种列式存储格式,Spark对于Parquet格式的支持非常好。以下是如何加载Parquet文件的示例:

1
2
3
4
5
# 加载Parquet文件
df_parquet = spark.read.parquet("path/to/your/data.parquet")

# 显示数据
df_parquet.show()

使用Parquet格式不仅加快了读取速度,也在存储上更为高效。

6. 通过JDBC加载数据

如果需要从关系型数据库中加载数据,可以通过JDBC连接。以下是连接到MySQL数据库的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 定义JDBC连接参数
jdbc_url = "jdbc:mysql://hostname:port/database"
properties = {
"user": "username",
"password": "password",
"driver": "com.mysql.jdbc.Driver"
}

# 加载数据
df_jdbc = spark.read.jdbc(url=jdbc_url, table="table_name", properties=properties)

# 显示数据
df_jdbc.show()

在上述代码中,我们定义了JDBC的连接字符串以及数据库表名,然后使用read.jdbc方法进行数据加载。

7. 总结

在这一篇中,我们详细介绍了如何在Apache Spark中加载不同数据源的数据,包括本地文件、HDFS、JSON、Parquet以及通过JDBC连接的关系型数据库。这些知识为我们下一篇“数据转化”打下了基础。在数据处理的实际应用中,常常需要从多种不同的数据源中提取数据,为后续的分析和处理做好准备。

接下来,我们将学习如何对加载的数据进行转化,探讨数据的转换和处理操作。

10 数据读取与处理之加载数据源

https://zglg.work/spark-zero/10/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论