在Pyspark中,可以使用explode()
函数来实现爆炸一个数据帧列的操作。explode()
函数将一个包含数组或者map类型的列拆分为多行,每行包含一个数组或map的元素。
以下是一个示例代码,展示如何使用explode()
函数来爆炸一个数据帧的列:
from pyspark.sql import SparkSession
from pyspark.sql.functions import explode
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建示例数据帧
data = [("Alice", ["Math", "English", "Science"]),
("Bob", ["History", "Geography"]),
("Charlie", ["Physics", "Chemistry", "Biology"])]
df = spark.createDataFrame(data, ["Name", "Subjects"])
# 使用explode()函数爆炸Subjects列
exploded_df = df.select("Name", explode("Subjects").alias("Subject"))
# 打印爆炸后的数据帧
exploded_df.show()
运行该代码,将得到以下输出:
+-------+---------+
| Name| Subject|
+-------+---------+
| Alice| Math|
| Alice| English|
| Alice| Science|
| Bob| History|
| Bob|Geography|
|Charlie| Physics|
|Charlie|Chemistry|
|Charlie| Biology|
+-------+---------+
在上述示例中,我们使用explode()
函数将Subjects列拆分为多行,并为新的列取名为Subject。最后,打印出爆炸后的数据帧。