У меня есть несколько сотен гб файлов Avro, каждый из которых содержит тысячи записей, относящихся к мобильному приложению и его использованию. Одним из ключей в схеме является идентификатор версии приложения, и мне нужно возвращать размер байта каждой записи, сгруппированной по идентификатору версии. Если схема настроена примерно так ...
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
, чтобы измерить размеры полезной нагрузки (или даже количество символов) для выпущенной версии приложения. Я не нашел никаких готовых решений для этого, и я не искатель искры. Возможно ли это?