Scalanie zagnieżdżonych danych
Zespół HR przechowuje dane pracowników w dwóch oddzielnych plikach JSON: jednym z podstawowymi informacjami i drugim z dodatkowymi atrybutami. Aby zbudować pełny profil pracownika, musisz połączyć te tabele przy użyciu wspólnego identyfikatora.
Złączenie wewnętrzne (inner join) łączy wiersze z dwóch tabel tam, gdzie wartości w kolumnie złączenia są zgodne – podobnie jak łączenie dwóch list gości na podstawie imienia i nazwiska. Klasy JsonReader, JsonReadOptions i Table zostały już zaimportowane.
To ćwiczenie jest częścią kursu
Importowanie danych w Javie
Instrukcje do ćwiczenia
- Ustaw nazwę tabeli dla pierwszego pliku JSON.
- Uzupełnij łańcuch budowania dla drugiego pliku.
- Złącz tabele po kolumnie
"id".
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
public class NestedEmployees {
public static void main(String[] args) {
// Set table name for first JSON
JsonReadOptions opts1 = JsonReadOptions
.builder("employees.json")
.____("Main")
.build();
Table main = new JsonReader().read(opts1);
// Complete builder chain for second JSON
JsonReadOptions opts2 = JsonReadOptions
.builder("employees_extra.json")
.tableName("Extra")
.____();
Table extra = new JsonReader().read(opts2);
System.out.println("Main columns: " + main.columnNames());
System.out.println("Extra columns: " + extra.columnNames());
// Join tables on id column
Table joined = main.____("id").____(extra);
System.out.println("\nJoined table (inner join on id):");
System.out.println(joined.print());
}
}