练习 - 使用 project 运算符选择要返回的列

已完成

可以使用 Kusto 查询来筛选数据并返回特定信息。

回想一下,你已查看了任意行的数据以了解数据结构。 本单元将介绍如何选择与风暴类型、位置及其破坏性影响相关的特定数据列。

使用 project 运算符

请记住,气象数据示例包含很多列。 并非所有这些列都对此次探索有意义。 你将仅选择几个要查看的列。 你将使用 project 运算符来定义想要在输出中查看的列。 列名用逗号隔开。

  1. 运行以下查询。 此查询在 project 运算符中命名要返回的列及其顺序。

    运行查询

    StormEvents
    | project EventType, State, DamageProperty, DamageCrops, InjuriesDirect, InjuriesIndirect
    | take 10
    
  2. 应获得如下图所示的结果:

    包含六列的 project 运算符结果的屏幕截图。

  3. 请注意,输出中只显示 project 运算符中提到的列。

使用 project 重命名和定义新列

为了解美国各州风暴的影响,你需要获得总受伤人数和总损失数额。 可以使用 project 运算符对不同列中的整数值求和,并在新列中返回结果。 还可以重命名列,使其对分析更有意义。

例如,其他国家/地区也有州行政单位。 将州列重命名可能会有所帮助,这样就可以清楚地显示结果是针对美国各州的。 让我们看看如何更改以前的查询,以便获取美国各州的总受伤人数和损失数额。

  1. 更新上一个查询,创建新列来显示“InjuriesDirect”和“InjuriesIndirect”的总和:

    Injuries=InjuriesDirect+InjuriesIndirect

  2. 对这两种类型的损失列都执行相同操作,将农作物损失和财产损失加在一起:

    Damage=DamageCrops+DamageProperty

  3. 将鼠标悬停在查询编辑器中的列名上,以查看列中包含的数据类型。 可以使用数值运算符来添加值,因为这些列的类型为 int(整数)。

    查询编辑器中数据类型的屏幕截图。

  4. 将“State”列重命名为“US_State”:

    US_State=State

  5. 查看更新的查询并运行它。 完整查询包括受伤人数计算、损失计算,并且重命名了“State”列。

    运行查询

    StormEvents
    | project US_State=State, EventType, Injuries=InjuriesDirect+InjuriesIndirect, Damage=DamageCrops+DamageProperty
    | take 10
    
  6. 应获得如下图所示的结果:

    重命名列的 project 运算符的查询结果的屏幕截图。

  7. 请注意,“State”列已重命名为“US_State”。 “Injuries”(受伤)列是新添加的,通过将“InjuriesDirect”和“InjuriesIndirect”求和进行计算。 “Damage”(损失)列也是新添加的,通过将“DamageCrops”和“DamageProperty”求和进行计算。

使用 project-away 运算符

如果想删除几个所选列,该如何操作? 对于本次探索,你从未用到分配到每个时段和事件的 ID。 可使用 project-away 运算符删除特定列,该运算符指示要删除的列,同时保留所有剩余列。 还可使用通配符(如 | project-away *Id)删除以“ID”结尾的所有列。

  1. 运行以下查询:

    运行查询

    StormEvents
    | project-away EpisodeId, EventId
    | take 10
    
  2. 检查结果。 请记住,“EpisodeId”和“EventId”列之前在“EndTime”和“State”列之间。 你在输出中看到了其中的哪些列?