【发布时间】:2021-02-05 00:42:10
【问题描述】:
我的问题是如何在 Jupyter 实验室的 KQL 魔术命令的循环中分配变量。我参考了微软关于这个主题的文档,并将我的问题基于这里给出的代码: https://docs.microsoft.com/en-us/azure/data-explorer/kqlmagic
1。下面的第一个查询
%%kql
StormEvents
| summarize max(DamageProperty) by State
| order by max_DamageProperty desc
| limit 10
2。第二:将生成的查询转换为数据框并将变量分配给'statefilter'
df = _kql_raw_result_.to_dataframe()
statefilter =df.loc[0].State
statefilter
3。这是我想修改上述查询并让 statefilter 有多个变量(即由不同的状态组成)的地方:
df = _kql_raw_result_.to_dataframe()
statefilter =df.loc[0:3].State
statefilter
4。最后,我想在 for 循环中为 statefilter 中的每个变量运行我的 kql 查询。下面的语法可能不正确,但它可以为我正在寻找的内容提供一个示例:
dfs = [] # an empty list to store dataframes
for state in statefilters:
%%kql
let _state = state;
StormEvents
| where State in (_state)
| do some operations here for that specific state
df = _kql_raw_result_.to_dataframe()
dfs.append(df) # store the df specific to state in the list
我没有在 KQL 查询中查询所有所需状态的原因是为了防止将非常大的查询结果分配给数据帧。这不是针对此样本StormEvents 具有合理大小的表,而是针对我的研究数据,该数据包含许多站点并且非常大。因此,我希望能够在 for 循环中为每个站点运行 KQL 查询/分析,并将每个站点的查询结果分配给数据框。请让我知道这是否可行,或者在 KQL 中可能有其他合乎逻辑的方法...
【问题讨论】:
标签: jupyter-lab azure-data-explorer kql