>_ IzzyLab

Практическое задание

jq: JSONL в CSV-сводку

сложно

/root/events.jsonl — по одному JSON-объекту {user, action} на строку. Посчитай число событий на пользователя и запиши в /root/summary.csv CSV с заголовком user,count, отсортированный по user. Формат — как у @csv (строки в кавычках, числа без).

Что потренируешь:
  • jq
  • jsonl
  • group_by
  • @csv
  • агрегация и сортировка

Разбор темы

JSONL — это поток отдельных объектов по строке, а не единый массив, поэтому его сперва «сглатывают» флагом slurp -s в массив. Группировка по полю делается функцией group_by(...), которая раскладывает элементы в массив групп; каждую группу сворачивают в одну запись, где счётчик даёт встроенная length, а общее значение поля берут у любого элемента группы. Для вывода в CSV поток строк-массивов прогоняют через фильтр @csv (он сам расставит кавычки по правилам CSV) с флагом сырого вывода -r; заголовок добавляют как отдельную первую строку.

Что проверяется

  1. CSV-сводка по пользователям верна

Как это выглядит