我有以下架构:
root
|-- id: string (nullable = true)
|-- text: string (nullable = true)
|-- user: string (nullable = true)
如何从此字符串创建StructType
模式?
我知道我可以在数据集中使用.schema()
方法,但是我问是否可以从字符串创建模式。
答案 0 :(得分:1)
我需要类似的东西,所以我编写了一个方法,该方法可以从字符串创建模式。但是您必须针对自己的情况更改此方法。
val schemaString = "val1#Int val2#String val3#Int"
val schema = StructType(schemaString.split(" ").map(fieldNameTypeStr => {
val fieldNameType = fieldNameTypeStr.split("#")
val dataType: DataType = fieldNameType(1) match {
case "String" => StringType
case "Int" => IntegerType
/* other cases */
}
StructField(fieldNameType(0), dataType, true)
}))