📜  创建 PySpark 数据帧(1)

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

创建 PySpark 数据帧

在 PySpark 中,数据帧(DataFrame)是一个分布式的二维表格,它支持结构化数据处理。在 PySpark 中,可以通过多种方式创建数据帧,下面将介绍其中的几种方式。

1. 从 RDD 创建数据帧

可以通过将 RDD 转换为数据帧来创建 PySpark 数据帧。

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("Create DataFrame from RDD").getOrCreate()

rdd = spark.sparkContext.parallelize([(1, "John"), (2, "Mike"), (3, "Anna")])
df = spark.createDataFrame(rdd, ["id", "name"])

df.show()

输出:

+---+----+
| id|name|
+---+----+
|  1|John|
|  2|Mike|
|  3|Anna|
+---+----+
2. 从列表创建数据帧

可以通过将列表转换为数据帧来创建 PySpark 数据帧。

from pyspark.sql import SparkSession
from pyspark.sql.types import StructType, StructField, IntegerType, StringType

spark = SparkSession.builder.appName("Create DataFrame from List").getOrCreate()

data = [(1, "John"), (2, "Mike"), (3, "Anna")]
schema = StructType([StructField("id", IntegerType(), True), StructField("name", StringType(), True)])
df = spark.createDataFrame(data, schema)

df.show()

输出:

+---+----+
| id|name|
+---+----+
|  1|John|
|  2|Mike|
|  3|Anna|
+---+----+
3. 从文件创建数据帧

可以通过读取文件来创建 PySpark 数据帧。

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("Create DataFrame from File").getOrCreate()

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

df.show()
4. 使用 SQL 创建数据帧

可以通过执行 SQL 语句来创建 PySpark 数据帧。

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("Create DataFrame using SQL").getOrCreate()

df = spark.sql("SELECT * FROM table")

df.show()

这些都是创建 PySpark 数据帧的常见方式,你可以根据自己的需求选择其中的一种或多种方式来创建数据帧。