无法在Power shell中显示数据视图结果。

问题描述 投票:1回答:1

我是一个新的azure数据资源管理器和Kusto查询。我正在从以下在线示例中学习

https:/dataexplorer.azure.comclustershelpdatabasesSamples。

以下是我在数据资源管理器中得到结果但无法在Power shell中显示的查询。

   StormEvents
   | where DamageProperty >0
   | limit 2
   | project StormSummary.TotalDamages

以下是我试图在Powershell中运行查询的代码的参考链接(下面链接页面中的示例2)

https:/docs.microsoft.comen-usazuredata-explorerkustoapipowershellpowershell。

我只修改了"$Query",并修改了最后一行代码,如下所示。

 $dataView | Format-Table -AutoSize 

我得到的输出是

  StormSummary_TotalDamages
  -------------------------
 {}  

我试着修改查询,在 "StormSummary.TotalDamages "中没有 "TotalDamages",但结果数据视图,我无法再次获得 "TotalDamages"。

 StormSummary                               
  ------------                               
 {TotalDamages, StartTime, EndTime, Details}
powershell dataview kusto azure-data-explorer kusto-query-language
1个回答
1
投票

有人帮我解决了我的问题。我把它贴出来以帮助其他人。

解释。查询结果导入到Json字符串,转换它从json和转换列&行数据布局回到单个PSObjects真的帮助我的问题。

编码。根据我的问题中提到的例子2,我们调用了

 $reader = $queryProvider.ExecuteQuery($query, $crp)

在这之后,我删除了现有的代码,并做了如下修改。

修改后的代码可以得到预测场数据(TotalDamages):

 $json = [Kusto.Cloud.Platform.Data.ExtendedDataReader]::ToJsonString($reader)
 $data = $json | ConvertFrom-Json

 $columns = @{}
 $count = 0
 foreach ($column in $data.Tables[0].Columns) {
   $columns[$column.ColumnName] = $count
    $count++
 }
$items = foreach ($row in $data.Tables[0].Rows) {
$hash = @{}
foreach ($property in $columns.Keys){
    $hash[$property] = $row[$columns[$property]]
}
[PSCustomObject]$hash
}
foreach($item in $items)
{
   Write-Host "TotalDamages: "$item.StormSummary.TotalDamages
 }

输出:

  TotalDamages:  6200000
  TotalDamages:  2000
© www.soinside.com 2019 - 2024. All rights reserved.