如何检查 PySpark DataFrame 是否为空?
在本文中,我们将检查 Pyspark DataFrame 或 Dataset 是否为空。
首先,让我们创建一个数据框
Python3
# import modules
from pyspark.sql import SparkSession
from pyspark.sql.types import StructType, StructField, StringType
# defining schema
schema = StructType([
StructField('COUNTRY', StringType(), True),
StructField('CITY', StringType(), True),
StructField('CAPITAL', StringType(), True)
])
# Create Spark Object
spark = SparkSession.builder.appName("TestApp").getOrCreate()
# Create Empty DataFrame with Schema.
df = spark.createDataFrame([], schema)
# Show schema and data
df.printSchema()
df.show(truncate=False)
Python3
print(df.head(1).isEmpty)
print(df.first(1).isEmpty)
print(df.rdd.isEmpty())
Python3
print(df.count() > 0)
print(df.count() == 0)
输出:
检查数据框是否为空
我们有多种方式可以检查:
方法一:isEmpty()
DataFrame或Dataset的isEmpty函数在DataFrame为空时返回true,非空时返回false。如果数据帧为空,调用“isEmpty”可能会导致 NullPointerException。
注意:在空数据帧上调用 df.head() 和 df.first() 会返回Java.util.NoSuchElementException: next 在空迭代器异常上。
蟒蛇3
print(df.head(1).isEmpty)
print(df.first(1).isEmpty)
print(df.rdd.isEmpty())
输出:
True
True
True
方法二:count()
它计算来自所有节点的所有分区的计数
代码:
蟒蛇3
print(df.count() > 0)
print(df.count() == 0)
False
True