Eliminación de columnas duplicadas después de unirse a DataFrame en PySpark

En este artículo, discutiremos cómo eliminar columnas duplicadas después de una unión de DataFrame en PySpark.

Cree el primer marco de datos para la demostración:

Python3

# Importing necessary libraries
from pyspark.sql import SparkSession
 
# Create a spark session
spark = SparkSession.builder.appName('pyspark \
- example join').getOrCreate()
 
# Create data in dataframe
data = [(('Ram'),1,'M'),
          (('Mike'),2,'M'),
          (('Rohini'),3,'M'),
          (('Maria'),4,'F'),
          (('Jenis'),5,'F')]
 
# Column names in dataframe
columns = ["Name","ID","Gender"]
 
# Create the spark dataframe
df1 = spark.createDataFrame(data=data, schema = columns)
 
# Print the dataframe
df1.show()

Producción:

+------+---+------+
|  Name| ID|Gender|
+------+---+------+
|   Ram|  1|     M|
|  Mike|  2|     M|
|Rohini|  3|     M|
| Maria|  4|     F|
| Jenis|  5|     F|
+------+---+------+

Cree un segundo marco de datos para la demostración:

Python3

# Create data in dataframe
data2 = [(1,3000),
          (2,4000),
          (3,4000),
          (4,4000),
          (5, 1200)]
 
# Column names in dataframe
columns = ["ID","salary"]
 
# Create the spark dataframe
df2 = spark.createDataFrame(data=data2,
                            schema = columns)
 
# Print the dataframe
df2.show()

Producción:

+---+------+
| ID|salary|
+---+------+
|  1|  3000|
|  2|  4000|
|  3|  4000|
|  4|  4000|
|  5|  1200|
+---+------+

Usando unir()

Esto unirá los dos marcos de datos.

Sintaxis: dataframe.join(dataframe1).show()

dónde,

dataframe es el primer dataframe

dataframe1 es el segundo marco de datos

Veamos el marco de datos después de unirse:

Python3

df = df1.join(df2, df1.ID==df2.ID)
df.show()

Producción:

+------+---+------+---+------+
|  Name| ID|Gender| ID|salary|
+------+---+------+---+------+
| Jenis|  5|     F|  5|  1200|
|   Ram|  1|     M|  1|  3000|
|Rohini|  3|     M|  3|  4000|
|  Mike|  2|     M|  2|  4000|
| Maria|  4|     F|  4|  4000|
+------+---+------+---+------+

Aquí vemos que las columnas ID y Salario se agregan a nuestro artículo existente.

Ahora, revisemos las columnas una vez:

Aquí verificamos las columnas de género, que son únicas, por lo que funcionan bien.

Python3

df.select('Gender').show()

Producción:

+------+
|Gender|
+------+
|     F|
|     M|
|     M|
|     M|
|     F|
+------+

Ahora revisemos nuestras Columnas Duplicadas:

Aquí producirá errores debido a columnas duplicadas.

Python3

df.select('ID').show()

Producción:

AnalysisException: la referencia ‘ID’ es ambigua, podría ser: ID, ID.

Eliminar columnas duplicadas después de unirse a PySpark

Si queremos eliminar la columna duplicada, debemos especificar la columna duplicada en la función de combinación. Aquí simplemente estamos usando join para unir dos marcos de datos y luego soltar columnas duplicadas.

Sintaxis: dataframe.join(dataframe1, [‘column_name’]).show()

dónde,

  • dataframe es el primer dataframe
  • dataframe1 es el segundo marco de datos
  • column_name es la columna común que existe en dos marcos de datos

Python3

new_df = df1.join(df2, ["id"])
new_df.show()

Salida :

+---+------+------+------+
| ID|  Name|Gender|salary|
+---+------+------+------+
|  5| Jenis|     F|  1200|
|  1|   Ram|     M|  3000|
|  3|Rohini|     M|  4000|
|  2|  Mike|     M|  4000|
|  4| Maria|     F|  4000|
+---+------+------+------+

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 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 *