【发布时间】:2017-11-30 17:30:53
【问题描述】:
我正在使用带有 Hive 数据的 PySpark Shell 工作。这里的目标是为多个项目收集计数器。下面我有一个示例数据框和数据查询。我使用的资源:@987654321@,但它适用于有限的计数器。
DriveHealth = sqlContext.sql("Select Health From testdrivestatus")
Health |
----------
Healthy
Healthy
Error A
Error B
Error C
这里的目标是创建会计数的计数器:
运行状况良好的驱动器数量
健康状况不健康的驱动器数量,因此错误 A、错误 B 和错误 C。
具有独立健康状态的驱动器数量,因此有一个健康、错误 A、错误 B 和错误 C 的计数器。
在这种情况下,我们会有这样的东西......
Health Counter
--------------
Healthy: 2
Unhealthy: 3
Error A: 1
Error B: 1
Error C: 1
我尝试过的方法适用于少量病例,但我有 60 多种不同的健康状况,我想知道是否有更好的方法来做到这一点:
DriveHealth = sqlContext.sql("Select
Count( case Health when 'Healthy' then 1 else null end) as Healthy,
Count( case Health is not 'Healthy' then 1 else null end) as UnHealthy,
Count( case Health when 'Error A' then 1 else null end) as ErrorA,
... (skipping typing Through Error C)
From testdrivestatus
【问题讨论】: