Tutoriales

Cómo concatenar columnas en PySpark DataFrame

En Python, PySpark es un módulo de Spark que se utiliza para proporcionar un tipo de procesamiento similar al de Spark con DataFrame. Podemos concatenar dos o más columnas en un DataFrame usando dos métodos. Son concat() y concat_ws(). Estos son los métodos disponibles en el módulo pyspark.sql.functions. Antes de explorar estos métodos, creemos un PySpark DataFrame.

ejemplo
En este ejemplo, creamos el PySpark DataFrame con 5 filas y 6 columnas y lo mostramos usando el método show().

#importar el módulo PySpark
importar PySpark
#import SparkSession para crear una sesión
fuera de PySpark.sql importar SparkSession

#crear una aplicación llamada linuxhint
chispa_app = SparkSession.constructor.nombre de la aplicación(‘linuxhint’).obtener o crear()

# Crear datos de estudiantes con 5 filas y 6 atributos
estudiantes =[{‘rollno’:‘001’,‘name’:‘sravan’,‘age’:23,‘height’:5.79,‘weight’:67,‘address’:‘guntur’},
               {‘rollno’:‘002’,‘name’:‘ojaswi’,‘age’:16,‘height’:3.79,‘weight’:34,‘address’:‘hyd’},
               {‘rollno’:‘003’,‘name’:‘gnanesh chowdary’,‘age’:7,‘height’:2.79,‘weight’:17,‘address’:‘patna’},
               {‘rollno’:‘004’,‘name’:‘rohith’,‘age’:9,‘height’:3.69,‘weight’:28,‘address’:‘hyd’},
               {‘rollno’:‘005’,‘name’:‘sridevi’,‘age’:37,‘height’:5.59,‘weight’:54,‘address’:‘hyd’}]

# Crear el marco de datos
d.f. = chispa_aplicación.Crear marco de datos( estudiantes)

#Mostrar marco de datos
d.f.show()

Producción:

PySpark – concat()

concat() conecta dos o más columnas en el PySpark DataFrame especificado y agrega esos valores a una nueva columna.

Usando el método select() podemos mostrar la columna concatenada, y usando un método alias() podemos nombrar la columna concatenada.

sintaxis

marco de datos.escoger(concat(columnas,……..).alias(«nueva_columna»))

Donde,

  1. dataframe es el dataframe PySpark de entrada
  2. concat(): se deben concatenar varias columnas: la columna se representa mediante el uso de dataframe.column
  3. new_column es el nombre de columna para la columna concatenada.

Ejemplo 1
En este ejemplo, concatenaremos las columnas de altura y peso en una nueva columna y nombraremos la columna Índice del cuerpo. Finalmente, solo seleccionamos esta columna y mostramos el DataFrame con el método show().

#importar el módulo PySpark
importar PySpark
#import SparkSession para crear una sesión
fuera de PySpark.sql importar SparkSession
# Función de concatenación de importación
fuera de PySpark.sql.funciones importar concat

#crear una aplicación llamada linuxhint
chispa_app = SparkSession.constructor.nombre de la aplicación(‘linuxhint’).obtener o crear()

# Crear datos de estudiantes con 5 filas y 6 atributos
estudiantes =[{‘rollno’:‘001’,‘name’:‘sravan’,‘age’:23,‘height’:5.79,‘weight’:67,‘address’:‘guntur’},
               {‘rollno’:‘002’,‘name’:‘ojaswi’,‘age’:16,‘height’:3.79,‘weight’:34,‘address’:‘hyd’},
               {‘rollno’:‘003’,‘name’:‘gnanesh chowdary’,‘age’:7,‘height’:2.79,‘weight’:17,‘address’:‘patna’},
               {‘rollno’:‘004’,‘name’:‘rohith’,‘age’:9,‘height’:3.69,‘weight’:28,‘address’:‘hyd’},
               {‘rollno’:‘005’,‘name’:‘sridevi’,‘age’:37,‘height’:5.59,‘weight’:54,‘address’:‘hyd’}]

# Crear el marco de datos
d.f. = chispa_aplicación.Crear marco de datos( estudiantes)

# Concatenar altura y peso en una nueva columna llamada «Índice corporal».
d.f.escoger(concat(d.f.Altura,d.f.carga).alias(«índice corporal»)).show()

Producción:

ejemplo 2
En este ejemplo, concatenamos las columnas rollno, nombre y dirección en una nueva columna y nombramos la columna Detalles. Finalmente, solo seleccionamos esta columna y mostramos el DataFrame con el método show().

#importar el módulo PySpark
importar PySpark
#import SparkSession para crear una sesión
fuera de PySpark.sql importar SparkSession
# Función de concatenación de importación
fuera de PySpark.sql.funciones importar concat

#crear una aplicación llamada linuxhint
chispa_app = SparkSession.constructor.nombre de la aplicación(‘linuxhint’).obtener o crear()

# Crear datos de estudiantes con 5 filas y 6 atributos
estudiantes =[{‘rollno’:‘001’,‘name’:‘sravan’,‘age’:23,‘height’:5.79,‘weight’:67,‘address’:‘guntur’},
               {‘rollno’:‘002’,‘name’:‘ojaswi’,‘age’:16,‘height’:3.79,‘weight’:34,‘address’:‘hyd’},
               {‘rollno’:‘003’,‘name’:‘gnanesh chowdary’,‘age’:7,‘height’:2.79,‘weight’:17,‘address’:‘patna’},
               {‘rollno’:‘004’,‘name’:‘rohith’,‘age’:9,‘height’:3.69,‘weight’:28,‘address’:‘hyd’},
               {‘rollno’:‘005’,‘name’:‘sridevi’,‘age’:37,‘height’:5.59,‘weight’:54,‘address’:‘hyd’}]

# Crear el marco de datos
d.f. = chispa_aplicación.Crear marco de datos( estudiantes)

# concatenar rollno, nombre y dirección en una nueva columna llamada – «Detalles».
d.f.escoger(concat(d.f.rodar no,d.f.Apellido,d.f.dirección).alias(«Detalles»)).show()

Producción:

PySpark – concat_ws()

Concat_ws() conecta dos o más columnas en el PySpark DataFrame especificado y agrega esos valores a una nueva columna. Separa los valores de cada columna con un separador.

Usando el método select() podemos mostrar la columna concatenada, y usando un método alias() podemos nombrar la columna concatenada.

sintaxis

marco de datos.escoger(concat(«Separador»,columnas,……..).alias(«nueva_columna»))

Donde,

  1. dataframe es el dataframe PySpark de entrada
  2. concat(): se deben concatenar varias columnas: la columna se representa mediante el uso de dataframe.column
  3. new_column es el nombre de columna para la columna concatenada.
  4. El delimitador puede ser cualquier cosa, como espacios, caracteres especiales, etc.

Ejemplo 1
En este ejemplo, concatenamos las columnas de altura y peso en una nueva columna y llamamos Índice del cuerpo de la columna, separados por «_». Finalmente, solo seleccionamos esta columna y mostramos el DataFrame con el método show().

#importar el módulo PySpark
importar PySpark
#import SparkSession para crear una sesión
fuera de PySpark.sql importar SparkSession
Importar función #concat_ws
fuera de PySpark.sql.funciones importar concat_ws

#crear una aplicación llamada linuxhint
chispa_app = SparkSession.constructor.nombre de la aplicación(‘linuxhint’).obtener o crear()

# Crear datos de estudiantes con 5 filas y 6 atributos
estudiantes =[{‘rollno’:‘001’,‘name’:‘sravan’,‘age’:23,‘height’:5.79,‘weight’:67,‘address’:‘guntur’},
               {‘rollno’:‘002’,‘name’:‘ojaswi’,‘age’:16,‘height’:3.79,‘weight’:34,‘address’:‘hyd’},
               {‘rollno’:‘003’,‘name’:‘gnanesh chowdary’,‘age’:7,‘height’:2.79,‘weight’:17,‘address’:‘patna’},
               {‘rollno’:‘004’,‘name’:‘rohith’,‘age’:9,‘height’:3.69,‘weight’:28,‘address’:‘hyd’},
               {‘rollno’:‘005’,‘name’:‘sridevi’,‘age’:37,‘height’:5.59,‘weight’:54,‘address’:‘hyd’}]

# Crear el marco de datos
d.f. = chispa_aplicación.Crear marco de datos( estudiantes)

# Concatenar altura y peso en una nueva columna llamada «Índice corporal».
d.f.escoger(concat_ws(«_»,d.f.Altura,d.f.carga).alias(«índice corporal»)).show()

Producción:

ejemplo 2
En este ejemplo, concatenamos las columnas rollno, nombre y dirección en una nueva columna y nombramos la columna como Detalles, separados por «***». Finalmente, solo seleccionamos esta columna y mostramos el DataFrame con el método show().

#importar el módulo PySpark
importar PySpark
#import SparkSession para crear una sesión
fuera de PySpark.sql importar SparkSession
Importar función #concat_ws
fuera de PySpark.sql.funciones importar concat_ws

#crear una aplicación llamada linuxhint
chispa_app = SparkSession.constructor.nombre de la aplicación(‘linuxhint’).obtener o crear()

# Crear datos de estudiantes con 5 filas y 6 atributos
estudiantes =[{‘rollno’:‘001’,‘name’:‘sravan’,‘age’:23,‘height’:5.79,‘weight’:67,‘address’:‘guntur’},
               {‘rollno’:‘002’,‘name’:‘ojaswi’,‘age’:16,‘height’:3.79,‘weight’:34,‘address’:‘hyd’},
               {‘rollno’:‘003’,‘name’:‘gnanesh chowdary’,‘age’:7,‘height’:2.79,‘weight’:17,‘address’:‘patna’},
               {‘rollno’:‘004’,‘name’:‘rohith’,‘age’:9,‘height’:3.69,‘weight’:28,‘address’:‘hyd’},
               {‘rollno’:‘005’,‘name’:‘sridevi’,‘age’:37,‘height’:5.59,‘weight’:54,‘address’:‘hyd’}]

# Crear el marco de datos
d.f. = chispa_aplicación.Crear marco de datos( estudiantes)

# concatenar rollno, nombre y dirección en una nueva columna llamada – «Detalles».
d.f.escoger(concat_ws(«***»,d.f.rodar no,d.f.Apellido,d.f.dirección).alias(«Detalles»)).show()

Producción:

Conclusión

Podemos concatenar dos o más columnas usando los métodos concat() y concat_ws(). La principal diferencia entre los dos métodos es que podemos agregar un delimitador en el método concat_ws().

LEER  Cómo instalar y usar VirtualBox en RHEL 9/8

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba