Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ed:lab_01 [2024/03/06 17:06]
pszwed [Join UsersTags]
ed:lab_01 [2024/03/14 12:43] (current)
pszwed [4.6 Join MoviesRatings]
Line 9: Line 9:
  
    
-===== Oprogramowanie =====+===== 1. Oprogramowanie =====
  
   * JDK 17 (Spark jest kompatybilny z JDK 8, 11 i 17)   * JDK 17 (Spark jest kompatybilny z JDK 8, 11 i 17)
Line 18: Line 18:
   * Przyda się w przyszłości: docker   * Przyda się w przyszłości: docker
  
-===== Projekt =====+===== 2. Projekt =====
  
 Tworzymy projekt oparty na Mavenie, a następnie modyfikujemy ''pom.xml'' Tworzymy projekt oparty na Mavenie, a następnie modyfikujemy ''pom.xml''
Line 155: Line 155:
 </code> </code>
  
-===== Główna klasa i konfiguracja =====+===== 3. Główna klasa i konfiguracja =====
  
 Napiszemy minimalistyczną klasę ''Main'' z funkcją ''main()'' Napiszemy minimalistyczną klasę ''Main'' z funkcją ''main()''
Line 242: Line 242:
  
  
-===== Ładowanie i konwersja danych =====+===== 4. Ładowanie i konwersja danych =====
  
-==== Pliki ====+==== 4.1 Pliki ====
 Wykorzystamy następujące pliki: Wykorzystamy następujące pliki:
  
Line 254: Line 254:
 Ich opis zamieszczony jest na tej stronie: [[https://home.agh.edu.pl/~pszwed/wiki/doku.php?id=pz1:java-movielens]] Ich opis zamieszczony jest na tej stronie: [[https://home.agh.edu.pl/~pszwed/wiki/doku.php?id=pz1:java-movielens]]
  
-==== Users ====+==== 4.2 Users ====
  
 <code java> <code java>
Line 333: Line 333:
 ale tracimy np. kotrole nad opcją ''nullable'' (która może być pożądana przy zapisie do bazy danych). ale tracimy np. kotrole nad opcją ''nullable'' (która może być pożądana przy zapisie do bazy danych).
  
-==== Movies ====+[[https://stackoverflow.com/questions/41705602/spark-dataframe-schema-nullable-fields|Dyskusja na temat nullable]] 
 + 
 +==== 4.3 Movies ====
  
 Dane o filmach zawierają niestrukturalne elementy: Dane o filmach zawierają niestrukturalne elementy:
Line 495: Line 497:
  
  
-==== Ratings ====+==== 4.4 Ratings ====
  
 Załaduj dane z pliku ''ratings.csv'' i wyświetl schemat. Załaduj dane z pliku ''ratings.csv'' i wyświetl schemat.
Line 612: Line 614:
   * as(Encoders.DOUBLE()) zamienia wiersze zbioru danych na obiekt wskazanego typu   * as(Encoders.DOUBLE()) zamienia wiersze zbioru danych na obiekt wskazanego typu
  
-==== Tags ====+==== 4.5 Tags ====
  
 **1.** Załaduj plik ''tags.csv'' i wyświetl informacje o jego zawartości i schemacie danych **1.** Załaduj plik ''tags.csv'' i wyświetl informacje o jego zawartości i schemacie danych
Line 684: Line 686:
  
  
-==== Join MoviesRatings ====+==== 4.6 Join MoviesRatings ====
  
 **1.** Załaduj plik ''movies.csv'' do zbioru df_movies\\ **1.** Załaduj plik ''movies.csv'' do zbioru df_movies\\
Line 774: Line 776:
 +-------+--------------------+--------------------+----+------+-------+------+-------------------+----------------------+ +-------+--------------------+--------------------+----+------+-------+------+-------------------+----------------------+
 </code> </code>
 +
 +:!: **Powtarzające się nazwy kolumn?** Po poperacji join:
 +<code java>
 +df_mr = df_mr.drop(df_ratings.col("movieId"));
 +</code>
 +
 +
  
 **2.** Pobierz listę wartości i wyświetl histogram.\\ **2.** Pobierz listę wartości i wyświetl histogram.\\
Line 864: Line 873:
    
  
-==== Join MoviesRatingsGenres ====+==== 4.7 Join MoviesRatingsGenres ====
  
 Jesteśmy zainteresowani informacjami o ocenach dla gatunków filmów.  Jesteśmy zainteresowani informacjami o ocenach dla gatunków filmów. 
Line 981: Line 990:
  
  
-==== Join UsersTags ====+==== 4.8 Join UsersTags ====
  
 **1.** Wczytaj dane użytkowników do zbioru ''df_users'' oraz tagi do ''df_tags''. **1.** Wczytaj dane użytkowników do zbioru ''df_users'' oraz tagi do ''df_tags''.
Line 1032: Line 1041:
  
  
-==== Join UsersRatings ====+==== 4.9 Join UsersRatings ====
  
 **1.** Wczytaj dane użytkowników do zbioru ''df_users'' oraz oceny do ''df_ratings''. **1.** Wczytaj dane użytkowników do zbioru ''df_users'' oraz oceny do ''df_ratings''.
Line 1059: Line 1068:
   * współrzędna y odpowiada kolumnie  ''count''   * współrzędna y odpowiada kolumnie  ''count''
  
-Jako alternatywa -  możesz wyświetlić histogram+
  
 {{ :ed:ratings-vs-average.png?direct&400 |}} {{ :ed:ratings-vs-average.png?direct&400 |}}
    
  
 +Jako alternatywę -  możesz wyświetlić histogram
  
-===== Sprawozdania =====+===== 5. Sprawozdania =====
  
   * Tworzymy dokument ze zrzutami ekranu i fragmentami wyjścia, konwertujemy go do PDF   * Tworzymy dokument ze zrzutami ekranu i fragmentami wyjścia, konwertujemy go do PDF
 +  * W dokumencie dodajemy tytuły sekcji z numeracją, czyli np. **4.9 Join UserRatings**
   * Przesyłamy skompresowany kod projektu   * Przesyłamy skompresowany kod projektu
  
ed/lab_01.1709741161.txt.gz · Last modified: 2024/03/06 17:06 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0