Spark> = 2.4.0
Чтобы сохранить схему в строковом формате, вы можете использовать метод toDDL
StructType
.В вашем случае формат DDL должен быть:
`Name` STRING, `Age` INT, `Designation` STRING, `Salary` INT, `ZipCode` INT
После сохранения схемы вы можете загрузить ее из базы данных и использовать ее как StructType.fromDDL(my_schema)
, это вернет экземпляр StructType, который вы можете использовать для созданияновый фрейм данных с spark.createDataFrame
, как уже упоминалось @Ajay.
Также полезно помнить, что вы всегда можете извлечь схему, заданную классу случая с:
import org.apache.spark.sql.catalyst.ScalaReflection
val empSchema = ScalaReflection.schemaFor[Employee].dataType.asInstanceOf[StructType]
И тогда вы можете получить представление DDL с помощью empSchema.toDDL
.
Spark <2,4 </strong>
Для Spark <2,4 используйте <code>DataType.fromDDL и schema.simpleString
соответственно.Кроме того, вместо возврата StructType
вы должны использовать экземпляр DataType
, опуская приведение к StructType следующим образом:
val empSchema = ScalaReflection.schemaFor[Employee].dataType
Пример вывода для empSchema.simpleString:
struct<Name:string,Age:int,Designation:string,Salary:int,ZipCode:int>