Cómo concatenar columnas en Pyspark DataFrame

Cómo concatenar columnas en Pyspark DataFrame
En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame. Podemos concatenar dos o más columnas en un marco de datos utilizando dos métodos. Son concat () y concat_ws (). Estos son los métodos disponibles en Pyspark.sql.módulo de funciones. Antes de conocer estos métodos, creemos un Pyspark DataFrame.

Ejemplo
En este ejemplo, crearemos el marco de datos de Pyspark con 5 filas y 6 columnas y lo mostraremos usando el método show ().

# Importar el módulo Pyspark
importar pyspark
# Importar SparkSession para crear una sesión
de Pyspark.SQL Import Sparksession
# Crea una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [
'Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
# Muestra DataFrame
df.espectáculo()

Producción:

Pyspark - Concat ()

Concat () unirá dos o más columnas en el marco de datos PySpark dado y agregará estos valores a una nueva columna.

Al usar el método select (), podemos ver la columna concatenada y mediante el uso de un método alias (), podemos nombrar la columna concatenada.

Sintaxis

marco de datos.Seleccionar (Concat (columnas, ...).alias ("new_column"))

dónde,

  1. DataFrame es la entrada Pyspark DataFrame
  2. Concat (): tomará varias columnas para concatenarse - La columna se representará utilizando DataFrame.columna
  3. new_column es el nombre de la columna para la columna concatenada.

Ejemplo 1
En este ejemplo, concatenaremos columnas de altura y peso en una nueva columna y nombraremos la columna como índice de cuerpo. Finalmente, solo seleccionaremos esta columna y mostraremos el marco de datos utilizando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Función de concatación de Import
de Pyspark.sql.Funciones de importación Concat
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [
'Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
# Concatenando la altura y el peso en una nueva columna llamada - "Índice del cuerpo"
df.Seleccionar (Concat (DF.Altura, DF.peso).alias ("índice del cuerpo")).espectáculo()

Producción:

Ejemplo 2
En este ejemplo, concatinaremos las columnas de Rollno, Nombre y Dirección en una nueva columna y nombraremos la columna como detalles. Finalmente, solo seleccionaremos esta columna y mostraremos el marco de datos utilizando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Función de concatación de Import
de Pyspark.sql.Funciones de importación Concat
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [
'Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
# Concatenar rollno, nombre y dirección en una nueva columna llamada - "Detalles"
df.Seleccionar (Concat (DF.Rollno, DF.Nombre, DF.DIRECCIÓN).alias ("detalles")).espectáculo()

Producción:

Pyspark - Concat_WS ()

Concat_ws () unirá dos o más columnas en el PySpark DataFrame dada y agregará estos valores a una nueva columna. Separará los valores de cada columna con un separador.

Al usar el método select (), podemos ver la columna concatenada y mediante el uso de un método alias (), podemos nombrar la columna concatenada.

Sintaxis

marco de datos.Seleccione (Concat ("Separador", columnas, ...).alias ("new_column"))

dónde,

  1. DataFrame es la entrada Pyspark DataFrame
  2. Concat (): tomará varias columnas para concatenarse - La columna se representará utilizando DataFrame.columna
  3. new_column es el nombre de la columna para la columna concatenada.
  4. El separador puede ser algo así como espacio, carácter especial, etc.

Ejemplo 1
En este ejemplo, concatenaremos columnas de altura y peso en una nueva columna y nombraremos la columna como índice de cuerpo separado con "_."Finalmente, solo seleccionaremos esta columna y mostraremos el marco de datos utilizando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#IMPORT CONCAT_WS Función
de Pyspark.sql.Funciones Importar concat_WS
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [
'Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
# Concatenando la altura y el peso en una nueva columna llamada - "Índice del cuerpo"
df.SELECT (concat_ws ("_", DF.Altura, DF.peso).alias ("índice del cuerpo")).espectáculo()

Producción:

Ejemplo 2
En este ejemplo, concatinaremos las columnas Rollno, Nombre y Dirección en una nueva columna y nombraremos la columna como detalles separados por "***."Finalmente, solo seleccionaremos esta columna y mostraremos el marco de datos utilizando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#IMPORT CONCAT_WS Función
de Pyspark.sql.Funciones Importar concat_WS
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiante con 5 filas y 6 atributos
estudiantes = [
'Rollno': '001', 'Nombre': 'Sravan', 'Age': 23,
'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'Ojaswi', 'Age': 16,
'Altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7,
'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'Rollno': '004', 'Nombre': 'Rohith', 'Age': 9,
'Altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37,
'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
# Concatenar rollno, nombre y dirección en una nueva columna llamada - "Detalles"
df.Seleccionar (concat_ws ("***", DF.Rollno, DF.Nombre, DF.DIRECCIÓN).alias ("detalles")).espectáculo()

Producción:

Conclusión

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