从 Serde 中的现有 Table 字符串字段中提取
Ingesting from Existing Table string field in Serde
我正在寻找使用 Serde 在 HIVE 中解析出一个 json 字符串,但是没有看到从 HIVE 表中已有的字符串进行解析的简单方法。你知道我该怎么做吗?
为了让我的场景更容易理解,这里是一个我可以尝试的屠杀示例:
ADD JAR hdfs:////user/d/libs/json-serde-1.3.8-jar-with-dependencies.jar;
CREATE Temporary TABLE TN (v string);
Insert overwrite table TN select '
[
{"t1":31646203,"t2":"h","s1":
[
{"r1":"w","r2":"w2"}
]
}
]' as v;
CREATE TABLE deserializeThis (jsonDeserialized array<struct<t1:int,t2:string,s1:array<struct<r1:string, r2:string>>>>)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
Insert overwrite table deserializeThis select v FROM TN;
感谢您的帮助!
为了使用SerDe我们可以在文件系统层面进行操作。为此,我们可以将信息推送到 table 并使用 SerDe 从该位置读取。
这个答案描述了以上内容:
我正在寻找使用 Serde 在 HIVE 中解析出一个 json 字符串,但是没有看到从 HIVE 表中已有的字符串进行解析的简单方法。你知道我该怎么做吗?
为了让我的场景更容易理解,这里是一个我可以尝试的屠杀示例:
ADD JAR hdfs:////user/d/libs/json-serde-1.3.8-jar-with-dependencies.jar;
CREATE Temporary TABLE TN (v string);
Insert overwrite table TN select '
[
{"t1":31646203,"t2":"h","s1":
[
{"r1":"w","r2":"w2"}
]
}
]' as v;
CREATE TABLE deserializeThis (jsonDeserialized array<struct<t1:int,t2:string,s1:array<struct<r1:string, r2:string>>>>)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
Insert overwrite table deserializeThis select v FROM TN;
感谢您的帮助!
为了使用SerDe我们可以在文件系统层面进行操作。为此,我们可以将信息推送到 table 并使用 SerDe 从该位置读取。
这个答案描述了以上内容: