Zadanie tygodnia: Spotify

  • Zadanie tygodnia: Spotify

    Posted by Marek Czuma on 2025-10-08 at 17:45

    Hej! W poniedziałek weszło nowe zadanie tygodnia. To pierwszy raz, gdy robimy kod w ramach zadań tygodnia:-). Pomyślałem, że rozgrzebię je nieco tutaj, w dyskusji – może to komuś pomoże. Jeśli macie pytania albo swoje spostrzeżenia, zapraszam:-)

    Na początek przypomnijmy polecenie:

    Zbadać jaki jest związek między subskrypcją a intensywnością korzystania ze Spotify

    Dataset można znaleźć na Kaggle (tenl link).

    Jak wygląda ten dataset:

    1. Najważniejsza rzecz: wiersz per user. Łącznie jest ~8000 użytkowników.
    2. Mamy tam 12 wierszy. Poniżej wszystkie, a zaznaczyłem te które moim zdaniem się przydadzą:

      user_id → Unikatowy ID użytkownika

      gender → płeć (Male/Female/Other)

      age → wiek

      country → państwo (np. DE, US)

      [!] subscription_type → typ subskrypcji (Free, Premium, Family, Student) – to nam się przyda!

      [!] listening_time → Liczba minut (dziennie) spędzonych na słuchaniu – to nam się przyda!

      [!] songs_played_per_day → Liczba piosenek puszczonych dziennie

      [!] skip_rate → Procent “przeskoczonych” piosenek dziennie

      device_type → Rodzaj urządzenia (Mobile, Desktop, Web)

      ads_listened_per_week → Liczba piosenek przesłuchanych tygodniowo

      offline_listening → Użycie trybu offline.

      is_churned → czy jest aktywny, czy nie (0 = Active, 1 = Churned)

    3. To jest format CSV! A więc gdy zrobiły w sparku proste “spark.read.csv(‘ścieżka’)” – będziemy mieli problem. Po pierwsze: nie będziemy mieli nazw kolumn. Po drugie – wszystkie kolumny będą stringami. Jak rozwiązać ten problem? Np. tak jak na moim screenie

    Małe podpowiedzi:

    1. Warto poświęcić chwilkę na przejrzenie danych. Standardowo radzę tu przynajmniej wywołać funkcje “.show()” (pokaże nam 20 pierwszych wierszy) oraz “.printSchema()” (pokaże schemat razem z typami). Polecam także porobić trochę prostych groupBy.count() – da to nieco bardziej precyzyjne zrozumienie jaka jest struktura. Nie chodzi tylko o odpowiedź na twarde pytania, ale też o to, żeby dane “usiadły” w naszej głowie.
    2. Warto zastanowić się w jaki sposób sprawdzić związek między subskrypcją a np. liczbą puszczonych piosenek dziennie. Pogrupujemy oczywiście po subskrypcji, ale co potem – średnia? Mediana?
    3. Wreszcie – warto przemyśleć jak zbierzemy odpowiedzi w jednym miejscu. Może to crossjoin na tych malutkich DFach? Albo coś jeszcze innego?

    Tak czy inaczej – powodzenia! Dajcie znać jakie kolumny jeszcze warto przepadać i jakie wzorce można tu znaleźć, których nie widać na pierwszy rzut oka;-).

    Jeśli macie pytania lub jakiekolwiek rozwiązania – też tu wrzucajcie!

    Powodznia!

    • This discussion was modified 5 days, 9 hours ago by  Marek Czuma.
    Marek Czuma replied 5 days, 9 hours ago 1 Member · 0 Replies
  • 0 Replies

Sorry, there were no replies found.

Zaloguj się aby odpowiedzieć