【发布时间】:2014-07-10 19:24:13
【问题描述】:
我们正在尝试创建一个模式以将大量 JSON 结构加载到 Hive 中。但是,我们遇到了一个问题,因为某些字段的名称前导下划线 - 在根级别,这很好,但我们还没有找到一种方法来使嵌套字段工作。
示例 JSON:
{
"_id" : "319FFE15FF908EDD86B7FDEADBEEFBD8D7284128841B14AA6A966923C268DF39",
"SomeThing" :
{
"_SomeField" : 22,
"AnotherField" : 2112,
"YetAnotherField": 1
}
. . . etc . . . .
使用如下模式:
create table testSample
(
id string,
something struct
<
somefield:int,
anotherfield:bigint,
yetanotherfield:int
>
)
row format serde 'org.openx.data.jsonserde.JsonSerDe'
with serdeproperties
(
"mapping.id" = "_id",
"mapping.somefield" = "_somefield"
);
此架构构建正常 - 但是,在加载上述示例后,“somefield”的值(嵌套 + 前导下划线之一)始终为 null(所有其他值都存在且正确)。
我们尝试了很多语法组合,但都无济于事。
有谁知道 技巧 来创建一个名称中带有前导下划线的嵌套字段?
干杯!
【问题讨论】: