从模式字符串Java-Spark创建JSON模式

时间:2018-07-24 10:55:53

标签: apache-spark

我有以下架构:

root
  |-- id: string (nullable = true)
  |-- text: string (nullable = true)  
  |-- user: string (nullable = true)

如何从此字符串创建StructType模式?

我知道我可以在数据集中使用.schema()方法,但是我问是否可以从字符串创建模式。

1 个答案:

答案 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)
}))