• Как агрегировать данные по элементам вложенного массива?

    mayton2019
    @mayton2019
    Bigdata Engineer
    выгружаются данные в виде json(csv):

    Я вижу 2 стратегии как с этим работать.

    1) Как с чистым JSON документом. Можно работать языком запросов JsonPath. И выбирать и трансформировать узлы Json многократно до полного формирования результата.

    2) Как с дата-фреймом технологии Pandas, Databricks/Spark. Судя по внешнему виду это Пандас
    загрузит успешно. Насчет Датабрикс я не уверент. Тот точно работает с Json-Lines а не с таким деревом где
    есть единый корень. У дата-фрейма есть свойства SQL-курсора. Тоесть по нему можно бегать и выбирать
    данные. Или другой датафрейм. И датафрейм обычно имеет больший запас прочности по объему данных.

    Какую стратегию выбрать - это больше вопрос к автору. Вот что он лучше знает - то пускай и выбирает.
    Ответ написан
    Комментировать
  • Как агрегировать данные по элементам вложенного массива?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну пустяковая для pandas проблема.

    import pandas as pd
    import numpy as np
    
    data = [{ "customer_id": "5f9d7b0a100400c6f00ad1cb",
      "customer_pet": "cat",
      "customer_cat_color": "gold",
      "customer_cat_name": "",
      "timestamp": "2023-05-15 12:22:22.111241 UTC",
      "list_cart": [
        "cart_1",
        "cart_2",
        "cart_3" ]},
      {"customer_id": "5f9d7b0a100400c6f00ad1cb",
      "customer_pet": "cat",
      "customer_cat_color": "gold",
      "customer_cat_name": "",
      "timestamp": "2023-05-15 13:33:33.111241 UTC",
      "list_cart": [
        "cart_3",
        "cart_7",
        "cart_1" ]}
    ]
    
    df = pd.DataFrame(data)
    print(df['list_cart'].explode().value_counts())


    Все результат как ты хотел, ну и вдобавок глянь на фрейм колонку list_cart можно, распарсить, как надо под любые нужды. Для других операций группировок и т.д.
    Ответ написан
    1 комментарий
  • Как сверстать блок со срезанным углом?

    @forgetable
    Node/Flutter/C++
    Не стоит делать Так

    Для подобных вещей лучше всего использовать svg и по ховеру применять к нему filter: shadow.
    Ответ написан
    3 комментария