📜  spark中csv文件的架构-任何(1)

📅  最后修改于: 2023-12-03 15:35:02.362000             🧑  作者: Mango

Spark 中 CSV 文件的架构及使用

什么是 CSV 文件?

CSV 文件是一种常见的数据存储格式,全称为 Comma-Separated Values,即逗号分隔值。它由行列表示,每行表示一条记录,每行中的字段用逗号分隔。相对于其他的表格数据存储格式,CSV 文件具有易于处理和传输的特点。

Spark 中的 CSV 文件架构

在 Spark 中,我们可以使用 spark.read.csv() 方法来读取 CSV 文件。这个方法会返回一个 DataFrame 对象。下面是一个 CSV 文件的例子:

name,age,height
Alice,25,165
Bob,30,180
Charlie,28,175

对于这个 CSV 文件,返回的 DataFrame 对象的架构是这样的:

+------+---+------+
|  name|age|height|
+------+---+------+
| Alice| 25|   165|
|   Bob| 30|   180|
|Charlie| 28|   175|
+------+---+------+

我们可以看到,DataFrame 的每一列都自动推断为具有相同的数据类型。如果你要为 DataFrame 指定某些列的数据类型,可以使用 schema 参数。

如何读取 CSV 文件?

要读取 CSV 文件,我们只需要使用 spark.read.csv() 方法。下面是一个读取 CSV 文件的例子:

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("readCSV").getOrCreate()

df = spark.read.csv("path/to/csv/file.csv", header=True, inferSchema=True)

在这个例子中,我们读取了一个 CSV 文件,指定了文件的路径,并将文件头纳入 DataFrame 架构,同时 Spark 会自动地通过数据内容推断数据类型。

除此之外,spark.read.csv() 方法还支持以很多种方式进行自定义,详见官方文档。

如何写入 CSV 文件?

要将 DataFrame 写入 CSV 文件,我们只需要使用 DataFrame.write.csv() 方法。下面是一个写入 CSV 文件的例子:

df.write.csv("path/to/output/folder", header=True)

在这个例子中,我们将一个 DataFrame 写入到一个文件夹中,文件夹是指定的输出路径,文件头会被输出到文件中。

除此之外,DataFrame.write.csv() 方法也可以通过很多的方式进行自定义,详见官方文档。

总结

Spark 中的 CSV 文件使用非常方便,我们只需要使用 spark.read.csv() 方法来读取 CSV 文件,并自动得到一个 DataFrame。对于写操作,也可以使用 DataFrame.write.csv() 方法将 DataFrame 写入到 CSV 文件中。除了本文里介绍到的基本操作,Spark 中对 CSV 文件的操作还支持着许多高级特性,更多的细节请查阅官方文档。