En este artículo, vamos a discutir la creación del dataframe de Pyspark a partir del diccionario anidado.
Usaremos el método createDataFrame() de pyspark para crear DataFrame. Para esto, usaremos una lista de diccionarios anidados y extraeremos el par como clave y valor. Seleccione los pares de clave y valor mencionando la función items() del diccionario anidado
[Row(**{'': k, **v}) for k,v in data.items()]
Ejemplo 1: programa Python para crear datos universitarios con un diccionario con dirección anidada en el diccionario
Python3
# importing module import pyspark # importing sparksession from pyspark.sql module from pyspark.sql import SparkSession from pyspark.sql import Row # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # creating nested dictionary data = { 'student_1': { 'student id': 7058, 'country': 'India', 'state': 'AP', 'district': 'Guntur' }, 'student_2': { 'student id': 7059, 'country': 'Srilanka', 'state': 'X', 'district': 'Y' } } # taking row data rowdata = [Row(**{'': k, **v}) for k, v in data.items()] # creating the pyspark dataframe final = spark.createDataFrame(rowdata).select( 'student id', 'country', 'state', 'district') # display pyspark dataframe final.show()
Producción:
+----------+--------+-----+--------+ |student id| country|state|district| +----------+--------+-----+--------+ | 7058| India| AP| Guntur| | 7059|Srilanka| X| Y| +----------+--------+-----+--------+
Ejemplo 2: programa Python para crear diccionarios anidados con 3 columnas (3 claves)
Python3
# importing module import pyspark # importing sparksession from pyspark.sql module from pyspark.sql import SparkSession from pyspark.sql import Row # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # creating nested dictionary data = { 'student_1': { 'student id': 7058, 'country': 'India', 'state': 'AP' }, 'student_2': { 'student id': 7059, 'country': 'Srilanka', 'state': 'X' } } # taking row data rowdata = [Row(**{'': k, **v}) for k, v in data.items()] # creating the pyspark dataframe final = spark.createDataFrame(rowdata).select( 'student id', 'country', 'state') # display pyspark dataframe final.show()
Producción:
+----------+--------+-----+ |student id| country|state| +----------+--------+-----+ | 7058| India| AP| | 7059|Srilanka| X| +----------+--------+-----+
Publicación traducida automáticamente
Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA