Solución:
Sí, es posible. Usar DataFrame.schema
property
schema
Devuelve el esquema de este DataFrame como pyspark.sql.types.StructType.
>>> df.schema StructType(List(StructField(age,IntegerType,true),StructField(name,StringType,true)))
Nuevo en la versión 1.3.
El esquema también se puede exportar a JSON y volver a importar si es necesario.
Puede reutilizar el esquema para el marco de datos existente
l = [('Ankita',25,'F'),('Jalfaizy',22,'M'),('saurabh',20,'M'),('Bala',26,None)]
people_rdd=spark.sparkContext.parallelize(l)
schemaPeople = people_rdd.toDF(['name','age','gender'])
schemaPeople.show()
+--------+---+------+
| name|age|gender|
+--------+---+------+
| Ankita| 25| F|
|Jalfaizy| 22| M|
| saurabh| 20| M|
| Bala| 26| null|
+--------+---+------+
spark.createDataFrame(people_rdd,schemaPeople.schema).show()
+--------+---+------+
| name|age|gender|
+--------+---+------+
| Ankita| 25| F|
|Jalfaizy| 22| M|
| saurabh| 20| M|
| Bala| 26| null|
+--------+---+------+
Simplemente use df.schema para obtener el esquema subyacente del marco de datos
schemaPeople.schema
StructType(List(StructField(name,StringType,true),StructField(age,LongType,true),StructField(gender,StringType,true)))
El siguiente código le dará una definición de esquema tabular bien formateada del marco de datos conocido. Muy útil cuando tiene una gran cantidad de columnas y cuando la edición es engorrosa. Ahora puede aplicarlo a su nuevo marco de datos y editar manualmente las columnas que desee en consecuencia.
from pyspark.sql.types import StructType
schema = [i for i in df.schema]
Y luego, desde aquí, tienes tu nuevo esquema:
NewSchema = StructType(schema)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)