Spark 读取文件系统数据
时间: 2025-05-24 10:26:32 浏览: 26
### 使用 Apache Spark 从文件系统读取数据
为了使用 Apache Spark 从文件系统中读取数据,可以利用 `SparkContext` 或者 DataFrame API 提供的功能来加载不同类型的文件。以下是具体方法:
对于结构化数据处理,推荐使用 DataFrame API 来简化操作并提高性能。可以通过调用 `spark.read.format().load()` 方法指定要读取的数据源格式以及路径。
#### 文本文件 (Text Files)
当目标是从本地或者分布式文件系统(如 HDFS)中读取纯文本文件时,可采用如下方式创建 RDD 或 DataFrame:
```python
# 创建 SparkSession实例
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("ReadFileExample").getOrCreate()
# 通过 text 文件构建RDD
text_file_rdd = spark.sparkContext.textFile("file:///path/to/text/file.txt")
# 如果想转换成DataFrame,则需先定义模式(schema),再应用到rdd上
from pyspark.sql.types import StringType, StructType, StructField
schema = StructType([StructField("line", StringType(), True)])
df_text = text_file_rdd.map(lambda line: (line,)).toDF(schema)
```
#### CSV 和 JSON 文件
CSV 和 JSON 是常见的半结构化数据存储形式,在 Spark 中可以直接作为输入源被解析为 DataFrames.
```python
# 加载csv文件至dataframe
df_csv = spark.read.option("header","true").option("inferSchema","true").csv("hdfs://namenode/path/to/csv/*.csv")
# 对于json文件同样适用
df_json = spark.read.json("/path/to/json/")
```
上述代码片段展示了如何基于不同的文件类型设置相应的选项参数[^1]。
#### Parquet 文件
Parquet 是一种列式存储格式,非常适合大规模数据分析场景下的高效查询。Spark 支持直接读写 parquet 文件而无需额外配置。
```python
# 读取parquet文件进入内存成为dataframe对象
df_parquet = spark.read.parquet('/path/to/parquet/')
```
这些例子说明了多种情况下怎样运用 PySpark 的内置函数完成对不同类型文件系统的访问和数据提取工作。值得注意的是,实际部署环境中可能还需要考虑诸如认证机制、权限管理等因素以确保安全合规地获取所需资源[^2]。
阅读全文
相关推荐




















