📅  最后修改于: 2023-12-03 15:22:40.138000             🧑  作者: Mango
在 PySpark 中,数据帧(DataFrame)是一个分布式的二维表格,它支持结构化数据处理。在 PySpark 中,可以通过多种方式创建数据帧,下面将介绍其中的几种方式。
可以通过将 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|
+---+----+
可以通过将列表转换为数据帧来创建 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|
+---+----+
可以通过读取文件来创建 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()
可以通过执行 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 数据帧的常见方式,你可以根据自己的需求选择其中的一种或多种方式来创建数据帧。