ComenzarEmpieza gratis

Practicar la creación de una UDF

A veces tus datos necesitan una transformación que no está cubierta por las funciones integradas. Ahí es donde resulta útil una función definida por el usuario ("UDF").

La función SQL udf está disponible.

Hay un dataframe df2 disponible, de tipo DataFrame[doc: array<string>, in: array<string>, out: array<string>]. Su columna doc contiene tokens triviales.

Lo siguiente muestra las primeras 20 filas de df2 donde doc contiene '1':

df2.where(array_contains('doc','1')).show()

Tienes dos objetivos que cumplir:

  1. Asegúrate de que los datos transformados sean vectores no vacíos.
  2. Un dataframe tiene una columna que contiene arrays de cadenas, donde cada array tiene un único elemento. Te gustaría transformar esta columna a una cadena.

Este ejercicio forma parte del curso

Introducción a Spark SQL en Python

Ver curso

Instrucciones del ejercicio

  • Crea una udf que devuelva verdadero si y solo si el valor es un vector no vacío, usando numNonzeros().
  • Crea una udf que devuelva el primer elemento del array y retorne su representación en cadena.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Returns true if the value is a nonempty vector
nonempty_udf = udf(lambda x:  
    True if (x and hasattr(x, "toArray") and x.____())
    else False, ____())

# Returns first element of the array as string
s_udf = udf(lambda x: ____(x[0]) if (x and type(x) is list and len(x) > 0)
    else '', ____())
Editar y ejecutar código