我有一个结构如下的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"
}
}
]
}
}
几点:
从上面的结构需要创建hive架构。
JSON结构可以动态更改。对于JSON结构中的每个更改。需要重新生成配置模式。
我试过,使用Python的JSON库;但没有多大用处。我无法获取标记名称,可以将其用作hive模式的字段名称。
想要自动配合生成JSON到Hive架构的过程。
探索Python JSON编码器,解码器类;解析JSON并使用自己的逻辑从中创建Hive模式。但是没有好的例子可以使用JSON Encoder,Decoder类。
最后,想要以Python UDF的形式放置所有内容。我也很喜欢任何Java UDF替代方案。
注意:上述JSON可以使用http://jsonlint.com/
进行结构化