0

我有一个具有以下结构的 JSON 文件:

{
    "A": {
        "AId": {
            "AId": "123",
            "idType": "XYZ"
        },
        "fN": "RfN",
        "oN": "ON",
        "mail": [
            "abc@kml.com",
            "xyz@kml.com"
        ],
        "ph": [
            {
                "nu": "999-999-9999",
                "t": "Of",
                "ext": "1234"
            },
            {
                "nu": "999-999-9999",
                "t": "Of",
                "ext": "1234"
            }
        ],
        "add": {
            "addLines": [
                "Addr Line 1",
                "Addr Line 2"
            ],
            "c": "C",
            "sC": "S"
        },
        "c": [
            {
                "cT": "CT",
                "cN": "9999"
            }
        ],
        "serId": "XXX"
    },
    "int": {
        "endTS": null,
        "cId": {
            "cId": "null",
            "cC": "null"
        },
        "cmpgn": null,
        "sTC": null,
        "cCID": {
            "tIC": "null",
            "tC": "null",
            "cC": []
        },
        "int": "Un",
        "rep": [],
        "pp": "null",
        "cf": {
            "a": 1234,
            "b": 1234
        },
        "iA": {
            "sId": {
                "s": "null",
                "sId": "null"
            },
            "cId": "null",
            "lId": "null"
        },
        "sRequest": null,
        "vBu": "VBU",
        "fId": "FId",
        "k": [
            "k"
        ],
        "eng": [
            {
                "EC": "E_CODE::12345",
                "cT": "2011-01-28T23:12:12.666Z",
                "up": null,
                "rep": {
                    "rep": {
                        "type": "B",
                        "id": "ID"
                    },
                    "fullName": "FullName"
                }
            }
        ]
    }
}

几点:

  1. 从上面的结构中需要创建hive schema。

  2. JSON 结构可以动态变化。对于 JSON 结构的每次更改。需要重新生成配置单元模式。

  3. 我试过了,使用 Python 的 JSON 库;但没有多大用处。我无法获得标签名称,它可以用作配置单元模式的字段名称。

  4. 想要将生成 JSON 的过程自动匹配到 Hive 模式。

  5. 探索Python JSON Encoder、Decoder类;解析 JSON 并放入自己的逻辑来创建 Hive 模式。但是没有很好的例子可以使用 JSON Encoder, Decoder 类。

  6. 最后,想把所有东西都放在 Python UDF 的形式中。我也喜欢任何 Java UDF 替代品。

注意:上面的 JSON 可以使用http://jsonlint.com/构建

4

0 回答 0