【问题标题】:Create JSON schema from schema string Java-Spark从模式字符串 Java-Spark 创建 JSON 模式
【发布时间】:2018-07-24 22:04:20
【问题描述】:

我有以下架构:

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

如何从这个字符串创建StructType 架构?

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

【问题讨论】:

  • 冒着被指控刻薄的风险 - 逐行阅读,提取您需要的部分,并创建相应的 StructType / StructField 结构。如果您是生成字符串的人,那么这是 XY 问题,并且是导出和操作模式表示的更好方法。在这种情况下,请edit您的问题和上下文。

标签: apache-spark


【解决方案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)
}))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2021-11-24
    • 2016-08-09
    相关资源
    最近更新 更多