【问题标题】:Create hive table using regex or json SerDe when root is an array当 root 是数组时,使用 regex 或 json SerDe 创建 hive 表
【发布时间】:2020-02-26 11:28:27
【问题描述】:

我的数据是这种格式

[{"field1":"data1","field2":100,"field3":"more data1","field4":123.001}]

[{"field1":"data2","field2":200,"field3":"more data2","field4":123.002}]

[{"field1":"data3","field2":300,"field3":"more data3","field4":123.003}]

[{"field1":"data4","field2":400,"field3":"more data4","field4":123.004}]

(每一行都是一个只有一个对象的数组),我想围绕它创建一个配置单元表。

如果 json 周围没有 [],那么我可以轻松使用默认 json serde ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'

regex serde 的问题是字段的顺序会发生变化,而且很难提取出准确的值。

如何创建具有这种数据格式的配置单元表?

【问题讨论】:

    标签: hadoop hive hive-serde


    【解决方案1】:

    您应该可以使用ARRAY<STRUCT

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-ComplexTypes

    如果每一行中总是有一个 JSON 对象,我只建议使用正则表达式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多