我正在配置单元中运行一个简单的查询,它生成以下输出(以及其他一些列)。
|------|-----------------------------------------------------------|
| col1 | col2 |
|------|-----------------------------------------------------------|
| A | {"variable1":123,"variable2":456,"variable3":789} |
|------|-----------------------------------------------------------|
| B | {"variable1":222,"variable2":333,"variable3":444} |
--------------------------------------------------------------------
我需要能够解析json字符串,并在select语句本身期间提取每个标记的值,这样我就可以合并where语句,只返回字符串中对我有价值的部分。
所以我的最终输出可能是这样的:
|------------------------------------------|
| col1 |variable1 | variable2 | variable3 |
|------------------------------------------|
| A | 123 | 456 | 789 |
|------------------------------------------|
| B | 222 | 333 | 444 |
--------------------------------------------
我尝试过使用示例中指定的参数结构使用各种函数,包括split和get\u json\u object,但都返回错误,例如:
No matching method for class org.apache.hadoop.hive.ql.udf.UDFJson
with (struct<...>, string). Possible choices: _FUNC_(string, string)
有人能告诉我,如果我试图做的是可行的,或解释一下我哪里做错了?
提前谢谢
2条答案
按热度按时间xdyibdwo1#
第一步:
第二步:
第三步:
icomxhvb2#
如果您将输出放入一个表中(比如json\u test),您可以用这种方式进行解析。您也可以调整查询以获得这些结果。
输出: