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