首页 > 解决方案 > 如何将数据框的所有列设置为空值

问题描述

我有一个数据框,它有 n 个包含所有数据类型的列我想要一个具有相同数量的列/列名的空数据框在创建列之后;有什么办法可以将列值设置为空

标签: pysparkapache-spark-sqlpyspark-dataframes

解决方案


您可以通过以下方式实现它。

from pyspark.sql import SparkSession
from pyspark.sql import functions as F

spark = SparkSession.builder \
.appName('stackoverflow')\
.getOrCreate()

sc= spark.sparkContext

df1 = sc.parallelize([
(1, 2, 3), (3,2, 4), (5,6, 7)
]).toDF(["a", "b", "c"])

df1.show()

+---+---+---+
|  a|  b|  c|
+---+---+---+
|  1|  2|  3|
|  3|  2|  4|
|  5|  6|  7|
+---+---+---+

df2 = df1.select( *[F.lit(None).alias(col)  for col in df1.columns])

df2.show()

+----+----+----+
|   a|   b|   c|
+----+----+----+
|null|null|null|
|null|null|null|
|null|null|null|
+----+----+----+

推荐阅读