azure-data-explorer - 如何在 Azure 数据资源管理器中对 JSON 对象进行动态联接
问题描述
我有一个使用 parse_json() 函数解析的嵌套 json 字符串。样本数据看起来像
{ "one":"OneValue", "four""FourValue", {"1":"stringA", "24":"stringBlah"..}}
嵌套 json 字符串中的值“1”和“24”是映射表的键。
样本映射表数据“1”:“One”“24”:“TwentyFour”
我想将嵌套 json 中的键与映射表连接起来,并有一个查询输出值而不是键。关于如何在键上进行动态连接的任何建议?
解决方案
我不完全确定我是否正确理解了您的意图,但以下内容可能会给您一个方向:
let T1 = datatable(d:dynamic)
[
dynamic({ "one":"OneValue", "four": "FourValue", "prop":{"1":"stringA", "24":"stringBlah"}}),
dynamic({ "one":"OneValue", "four": "FourValue", "prop":{"3":"stringB", "24":"stringBlahBlah"}})
]
;
let T2 = datatable(i:int, s:string)
[
1, "One",
24, "TwentyFour",
3, "Three"
]
;
let map = toscalar(
T2
| summarize make_bag(pack(tostring(i), s))
)
;
T1
| project prop = d.prop
| mv-apply prop on
(
extend key = tostring(bag_keys(prop)[0])
| project p = pack(tostring(map[key]), prop[tostring(key)])
| summarize result = make_bag(p)
)
这返回:
|result |
|----------------------------------------------------|
|{"One": "stringA", "TwentyFour": "stringBlah"} |
|{"Three": "stringB", "TwentyFour": "stringBlahBlah"}|
推荐阅读
- c# - 如何关闭物理连接
- textures - IWICDdsDecoder 无法加载立方体贴图
- python - 正则表达式 - 根据匹配字符串提取完整的单词库
- javascript - 有没有办法在javascript的for循环中使用睡眠(或延迟)函数
- python - 从不重叠的点和多边形中获取属性
- node.js - 如何使用 NodeJs 在 https://api.linkedin.com/mediaUpload/ 上放置媒体
- rust - 在 for 迭代器中调用可变方法的不同方法
- java - TextView 不会显示 Html
- swift - 如何在 swift 中创建具有非常量变量的方法
- python - 防止 MySQL 在从 Python 导入数据时将浮点数/小数转换为 int