Comment vérifier si PySpark DataFrame est vide ?

Afficher la discussion

Améliorer l’article

Enregistrer l’article

J’aime l’article

Afficher la discussion

Améliorer l’article

Enregistrer l’article

J’aime l’article

Dans cet article, nous allons vérifier si le DataFrame ou le Dataset Pyspark est vide ou non.

Dans un premier temps, créons un dataframe

Python3

from pyspark.sql import SparkSession

from pyspark.sql.types import StructType, StructField, StringType

 

schema = StructType([

    StructField('COUNTRY', StringType(), True),

    StructField('CITY', StringType(), True),

    StructField('CAPITAL', StringType(), True)

])

 

spark = SparkSession.builder.appName("TestApp").getOrCreate()

 

df = spark.createDataFrame([], schema)

 

df.printSchema()

df.show(truncate=False)

Production:

Screenshotfrom20210525202038

Vérifier que la trame de données est vide ou non

Nous avons plusieurs façons de vérifier :

Méthode 1 : isEmpty()

La fonction isEmpty du DataFrame ou du Dataset renvoie true lorsque le DataFrame est vide et false lorsqu’il n’est pas vide. Si la trame de données est vide, l’appel de “isEmpty” peut entraîner NullPointerException.

Noter : appeler df.head() et df.first() sur un DataFrame vide renvoie java.util.NoSuchElementException: next sur une exception d’itérateur vide.

Python3

print(df.head(1).isEmpty)

print(df.first(1).isEmpty)

print(df.rdd.isEmpty())

Production:

True
True
True

Méthode 2 : count()

Il calcule le nombre de toutes les partitions de tous les nœuds

Code:

Python3

print(df.count() > 0)

print(df.count() == 0)

False
True

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *