¿Cómo verificar si algo es un RDD o un DataFrame en PySpark?

En este artículo vamos a verificar que los datos sean un RDD o un DataFrame usando los métodos isinstance(), type() y dispatch.

Método 1. Usar el método isinstance()

Se utiliza para verificar que los datos particulares sean RDD o dataframe. Devuelve el valor booleano.

Sintaxis: isinstance(data,DataFrame/RDD)

dónde

  • los datos son nuestros datos de entrada
  • DataFrame es el método del módulo pyspark.sql
  • RDD es el método del módulo pyspark.sql

Programa de ejemplo para verificar que nuestros datos sean dataframe o no:

Python3

# importing module
import pyspark
  
#import DataFrame
from pyspark.sql import DataFrame
  
# importing sparksession
# from pyspark.sql module
from pyspark.sql import SparkSession
  
# creating sparksession
# and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
# list  of employee data
data = [[1, "sravan", "company 1"],
        [2, "ojaswi", "company 1"],
        [3, "rohith", "company 2"],
        [4, "sridevi", "company 1"],
        [1, "sravan", "company 1"],
        [4, "sridevi", "company 1"]]
  
# specify column names
columns = ['ID', 'NAME', 'Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
  
# check if it is dataframe or not
print(isinstance(dataframe, DataFrame))

Producción:

True

Verifique que los datos sean RDD o no:

Al usar el método isinstance() podemos verificar.

Sintaxis: isinstance(datos,RDD)

dónde

  1. los datos son nuestros datos de entrada
  2. RDDis el método del módulo pyspark.sql

Ejemplo:

Python3

# import DataFrame
from pyspark.sql import DataFrame
  
# import RDD
from pyspark.rdd import RDD
  
# need to import for session creation
from pyspark.sql import SparkSession
  
# creating the  spark session
spark = SparkSession.builder.getOrCreate()
  
# create an rdd with some data
data = spark.sparkContext.parallelize([("1", "sravan", "vignan", 67, 89),
                                       ("2", "ojaswi", "vvit", 78, 89),
                                       ("3", "rohith", "vvit", 100, 80),
                                       ("4", "sridevi", "vignan", 78, 80),
                                       ("1", "sravan", "vignan", 89, 98),
                                       ("5", "gnanesh", "iit", 94, 98)])
  
# check the data is  rdd or not
print(isinstance(data, RDD))

Producción:

True

Convierta el RDD en DataFrame y verifique el tipo

Aquí crearemos un RDD y lo convertiremos en marco de datos usando el método toDF() y verificaremos los datos.

Python3

# import DataFrame
from pyspark.sql import DataFrame
  
# import RDD
from pyspark.rdd import RDD
  
# need to import for session creation
from pyspark.sql import SparkSession
  
# creating the  spark session
spark = SparkSession.builder.getOrCreate()
  
# create an rdd with some data
rdd = spark.sparkContext.parallelize([(1, "Sravan", "vignan", 98),
                                      (2, "bobby", "bsc", 87)])
  
# check if it is an RDD
print(" RDD : ", isinstance(rdd, RDD))
  
# check if it is an DataFrame
print("Dataframe : ", isinstance(rdd, DataFrame))
  
# display data of rdd
print("Rdd Data : \n", rdd.collect())
  
# convert rdd to dataframe
data = rdd.toDF()
  
# check if it is an RDD
print("RDD : ", isinstance(rdd, RDD))
  
# check if it is an DataFrame
print("Dataframe : ", isinstance(rdd, DataFrame))
  
# display dataframe
data.collect()

Producción:

Método 2: Usar la función type()

El comando type() se usa para devolver el tipo del objeto dado.

Sintaxis: tipo (objeto_datos)

Aquí, dataobject es el rdd o dataframe data.

Ejemplo 1 : programa Python para crear datos con RDD y verificar el tipo

Python3

# need to import for session creation
from pyspark.sql import SparkSession
  
# creating the  spark session
spark = SparkSession.builder.getOrCreate()
  
# create an rdd with some data
rdd = spark.sparkContext.parallelize([(1, "Sravan","vignan",98),
                                      (2, "bobby","bsc",87)])
  
# check the type using type() command
print(type(rdd))

Producción:

<class 'pyspark.rdd.RDD'>

Ejemplo 2: programa de Python para crear un marco de datos y verificar el tipo.

Python3

# importing module
import pyspark
  
# importing sparksession from pyspark.sql module
from pyspark.sql import SparkSession
  
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
# list  of employee data 
data =[[1,"sravan","company 1"],
       [2,"ojaswi","company 1"],
       [3,"rohith","company 2"],
       [4,"sridevi","company 1"],
       [1,"sravan","company 1"], 
       [4,"sridevi","company 1"]]
  
# specify column names
columns=['ID','NAME','Company']
  
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data,columns)
  
# check thet type of
# data with type() command
print(type(dataframe))

Producción:

<class 'pyspark.sql.dataframe.DataFrame'>

Método 3: Uso de Despacho

El decorador de despacho crea un objeto de despacho con el nombre de la función y almacena este objeto. Podemos referirnos a este objeto para hacer las operaciones. Aquí estamos creando un objeto para verificar que nuestros datos sean RDD o DataFrame. Así que estamos usando envío único

Ejemplo 1: Código de Python para crear un despachador único y pasar los datos y verificar que los datos sean rdd o no

Python3

# importing module
from pyspark.rdd import RDD
from pyspark.sql import DataFrame
import pyspark
  
# importing sparksession from pyspark.sql module
from pyspark.sql import SparkSession
  
# import singledispatch
from functools import singledispatch
  
# import spark context
from pyspark import SparkContext
  
# createan object for spark
# context with local and name is GFG
sc = SparkContext("local", "GFG")
  
# creating sparksession
# and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
# import DataFrame
  
# import RDD
  
# creating the  spark session
spark = SparkSession.builder.getOrCreate()
  
# create a function to dispatch our function
@singledispatch
def check(x):
    pass
  
# this function is for returning
# an RDD if the given input is RDD
@check.register(RDD)
def _(arg):
    return "RDD"
  
# this function is for returning
# an RDD if the given input is DataFrame
@check.register(DataFrame)
def _(arg):
    return "DataFrame"
  
# create an pyspark dataframe
# and check whether it is RDD or not
print(check(sc.parallelize([("1", "sravan", "vignan", 67, 89)])))

Producción:

RDD

Ejemplo 2: código de Python para verificar si los datos son marcos de datos o no

Python3

# importing module
from pyspark.rdd import RDD
from pyspark.sql import DataFrame
import pyspark
  
# importing sparksession from pyspark.sql module
from pyspark.sql import SparkSession
  
# import singledispatch
from functools import singledispatch
  
# import spark context
from pyspark import SparkContext
  
# createan object for spark
# context with local and name is GFG
sc = SparkContext("local", "GFG")
  
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
# creating the  spark session
spark = SparkSession.builder.getOrCreate()
  
# create a function to dispatch our function
@singledispatch
def check(x):
    pass
  
# this function is for returning
# an RDD if the given input is RDD
@check.register(RDD)
def _(arg):
    return "RDD"
  
# this function is for returning
# an RDD if the given input is DataFrame
@check.register(DataFrame)
def _(arg):
    return "DataFrame"
  
# create an pyspark dataframe and
# check whether it is dataframe or not
print(check(spark.createDataFrame([("1", "sravan",
                                    "vignan", 67, 89)])))

Producción:

DataFrame

Publicación traducida automáticamente

Artículo escrito por gottumukkalabobby y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *