首页 > 解决方案 > 如何从配置单元 SQL 表描述生成 json 对象?

问题描述

describe formatted table_name用来获取表格的描述。我得到以下结果。我想以某种方式将其转换为 json。有什么好的方法吗?换句话说,我想将我的 sql 表描述作为 json。不像以下输出中所示的表格。

desc 格式的 table_name 的输出

我想要得到的输出应该是这样的:

{
    "columns" : {
        "id" : "int",
        "name": "string"
    },


    "partition_information": {
        "columns" : {
            "dt_temp" : "string"
        }
    },

    "Detailed table information" : {
        "Database" : "d1",
        "owner" : "root",
        .
        .
        .
        .
        .
        
    }
}

是否有任何功能或库可以为我做到这一点?现在,我正在使用 python 脚本手动执行此操作,但这非常困难且混乱。我不期望我提到的完全相同的输出,我正在寻找一种方法来从一些 python 脚本中轻松且有意义地解析它。有什么建议么?

标签: jsonhivehiveqlhiveddl

解决方案


DESCRIBE EXTENDED 可以生成 JSON(检查它在 Hive 2.1.1 上工作正常):

set hive.ddl.output.format=json;
desc extended table_name;

它产生如下输出:

{"columns":[{"name":"id","type":"bigint","comment":"from deserializer"}, 
            {"name":"col1","type":"string","comment":"from deserializer"},
            ...

推荐阅读