如何通过Python Kusto SDK查看Kusto详细数据及空结果处理
Kusto查询空DataFrame相关问题解答
1. 空DataFrame是否属于正常结果?
这种结果是正常的。它说明你的Kusto查询语法合法(如果查询出错会直接抛出KustoServiceError),但查询条件没有匹配到任何数据行,不过Kusto服务正确识别了你查询指定的列结构,所以返回了保留列名的空DataFrame。
2. 当前状态下如何调用Resource列数据?
因为DataFrame没有数据行,无法提取到Resource列的实际值。你需要先排查数据缺失的原因:
- 检查Kusto查询语句的过滤条件是否过于严格,导致没有数据返回
- 确认目标表中确实存在
Resource列,且有有效数据 - 核对查询的数据库、表名是否正确
当查询有数据返回时,结果会是包含实际行的DataFrame,示例如下:
Resource 0 VM-Prod-001 1 Storage-Account-002 2 AppService-Dev-003
此时要查看Resource列的内容,直接执行x['Resource']即可,会返回一个Pandas Series,包含所有行的Resource值。
3. 多列空DataFrame的列值提取
对于包含Tag,Level,Sequence,Message,Metrics列的空DataFrame,同样因为没有数据行,无法提取到这些列的实际值。解决步骤和上述一致:
- 先验证查询语句的正确性,包括列名拼写、表名、数据库名是否无误
- 检查查询的时间范围、过滤条件是否合理,是否存在符合条件的数据
- 可以先在Kusto Explorer或Azure Portal的Kusto查询界面执行相同查询,确认是否有数据返回
当查询得到有数据的DataFrame后,提取对应列的方法:
- 提取单列:
x['Tag']、x['Level']、x['Sequence']等 - 提取多列:
x[['Tag', 'Message', 'Metrics']]
内容的提问来源于stack exchange,提问作者Exploit
相关产品推荐
相关产品推荐

