我有几百个GB的Avro文件,每个文件包含成千上万个与移动应用程序及其使用有关的记录。模式中的关键之一是应用程序版本ID,我需要返回按版本ID分组的每个记录的字节大小。如果设置了架构,则如下所示……
root
|-- useId: string (nullable = true)
|-- useTime: double (nullable = true)
|-- appVersion: string (nullable = true)
|-- useDetails: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- type: integer (nullable = true)
| | |-- something: double (nullable = true)
| | |-- somethingElse: double (nullable = true)
.
.
.
...然后,我基本上想做类似select appVersion, sum(bytesPerRecord) from df group by appVersion
的事情,以便评估每个已发布版本的应用程序的有效负载大小(甚至是字符数)。我还没有找到任何现成的解决方案,我也不是火花专家。这可能吗?