📜  如何检查 PySpark DataFrame 是否为空?

📅  最后修改于: 2022-05-13 01:55:50.495000             🧑  作者: Mango

如何检查 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