Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Schéma wanderbricks v samples katalogu obsahuje simulovanou datovou sadu platformy cestovních rezervací. Modeluje platformu pro pronájem rekreačních objektů s tabulkami zahrnujícími uživatele a hostitele, seznamy rekreačních objektů a destinací, rezervace a platby, recenze a protokoly podpory a aktivity průběhu kliknutí.
Tato datová sada slouží k prozkoumání kanálů přípravy dat, analytických řídicích panelů a pracovních postupů strojového učení bez načítání vlastních dat.
Přístup k datové sadě
Datová sada Wanderbricks je předem načtena v samples katalogu a je k dispozici v pracovních prostorech s podporou katalogu Unity.
Zobrazení seznamu všech tabulek ve schématu:
SQL
SHOW TABLES IN samples.wanderbricks;
Python
display(spark.sql("SHOW TABLES IN samples.wanderbricks"))
Náhled dat v konkrétní tabulce:
SQL
SELECT *
FROM samples.wanderbricks.<table-name>
LIMIT 10;
Python
display(spark.read.table("samples.wanderbricks.<table-name>").limit(10))
Nahraďte <table-name> tabulkou, kterou chcete prozkoumat, například bookingsreviews.
Tabulky
Schéma wanderbricks obsahuje následující tabulky. Spusťte SHOW TABLES IN samples.wanderbricks pro zobrazení úplného seznamu.
| tabulka | Description |
|---|---|
users |
Profily uživatelů, včetně jména, e-mailu, země nebo oblasti a typu uživatele. |
hosts |
Profily hostitelů spojené s výpisy nemovitostí, včetně informací o účtu a kontaktních údajů. |
properties |
Nabídky nemovitostí s podrobnostmi, jako jsou název, typ, cena a lokalita. |
bookings |
Záznamy o rezervacích s daty příjezdu/odjezdu, počtem hostů, celkovými částkami a stavem. |
payments |
Záznamy plateb se způsobem platby, částkou, stavem a odkazy na rezervace. |
booking_updates |
Záznamy změn stavu pro kanály zachytávající změny dat (CDC) |
reviews |
Uživatelské recenze položek, včetně hodnocení, komentářů a příznaku is_deleted pro soft smazání. |
clickstream |
Události aktivit uživatelů (zobrazení, kliknutí, vyhledávání, filtry) s vnořenými metadaty pro zařízení a referrer. |
page_views |
Události zobrazení stránky vázané na uživatele a vlastnosti |
customer_support_logs |
Logy podpůrných tiketů s vnořenými poli zpráv, včetně odesílatele a sentimentu |
destinations |
Cílová umístění s názvy a popisy, na které odkazují realitní výpisy. |
Primární relace mezi tabulkami
Následující diagram znázorňuje propojení mezi uživateli, rezervacemi, vlastnostmi a souvisejícími tabulkami.
- Uživatelé a hostitelé
-
userspředstavuje cestující a obchodní zákazníky. -
hostspředstavuje vlastníky a provozovatele nemovitostí.
-
- Vlastnosti a cíle
- Každý řádek v
propertiesje výpis vlastněný hostitelem. -
propertiesodkazuje nadestinationsmodel, ve kterém se nachází výpis.
- Každý řádek v
- Rezervace a platby
-
bookingspřipojí cestovatele (user_id) k vlastnostem (property_id). -
paymentsabooking_updatesodkazujíbooking_idna zachycení finančních transakcí a změn stavu.
-
- Chování a zkušenosti
-
clickstreamapage_viewssledujte, jak uživatelé procházejí výpisy a pracují s nimi. -
reviewszaznamenává zpětnou vazbu uživatelů a nemovitosti po pobytu. -
customer_support_logszáznamy podporují interakce, které jsou provázané s uživatelem.
-
Příkladové dotazy
Následující příklady ukazují, jak dotazovat datovou sadu Wanderbricks.
Připojte se k uživatelům, rezervacím a vlastnostem
Vrátit poslední rezervace s podrobnostmi o hostech a ubytováních:
SQL
SELECT
u.name AS guest_name,
p.title AS property_title,
b.check_in,
b.check_out,
b.total_amount,
b.status
FROM samples.wanderbricks.bookings AS b
JOIN samples.wanderbricks.users AS u
ON b.user_id = u.user_id
JOIN samples.wanderbricks.properties AS p
ON b.property_id = p.property_id
ORDER BY b.check_in DESC
LIMIT 10;
Python
bookings_df = spark.read.table("samples.wanderbricks.bookings")
users_df = spark.read.table("samples.wanderbricks.users")
properties_df = spark.read.table("samples.wanderbricks.properties")
result_df = (
bookings_df
.join(users_df, bookings_df.user_id == users_df.user_id)
.join(properties_df, bookings_df.property_id == properties_df.property_id)
.select(
users_df.name.alias("guest_name"),
properties_df.title.alias("property_title"),
bookings_df.check_in,
bookings_df.check_out,
bookings_df.total_amount,
bookings_df.status
)
.orderBy(bookings_df.check_in.desc())
.limit(10)
)
display(result_df)
Analýza událostí clickstreamu podle zařízení
Shrnutí zapojení podle typu události a zařízení:
SQL
SELECT
metadata.device AS device_type,
event,
COUNT(*) AS event_count
FROM samples.wanderbricks.clickstream
GROUP BY metadata.device, event
ORDER BY event_count DESC;
Python
from pyspark.sql.functions import col, count
clickstream_df = spark.read.table("samples.wanderbricks.clickstream")
result_df = (
clickstream_df
.groupBy(col("metadata.device").alias("device_type"), col("event"))
.agg(count("*").alias("event_count"))
.orderBy(col("event_count").desc())
)
display(result_df)
Průměrné hodnocení za nemovitost
Najděte nejlépe hodnocené nemovitosti s dostatečným objemem recenzí.
SQL
SELECT
p.title AS property_title,
p.property_type,
ROUND(AVG(r.rating), 2) AS avg_rating,
COUNT(r.rating) AS review_count
FROM samples.wanderbricks.properties AS p
JOIN samples.wanderbricks.reviews AS r
ON p.property_id = r.property_id
WHERE r.is_deleted = false
GROUP BY p.title, p.property_type
HAVING COUNT(r.rating) >= 5
ORDER BY avg_rating DESC
LIMIT 10;
Python
from pyspark.sql.functions import avg, count, round as pyspark_round, col
properties_df = spark.read.table("samples.wanderbricks.properties")
reviews_df = spark.read.table("samples.wanderbricks.reviews")
result_df = (
properties_df
.join(reviews_df, properties_df.property_id == reviews_df.property_id)
.where(reviews_df.is_deleted == False)
.groupBy(
properties_df.title.alias("property_title"),
properties_df.property_type
)
.agg(
pyspark_round(avg(reviews_df.rating), 2).alias("avg_rating"),
count(reviews_df.rating).alias("review_count")
)
.filter(col("review_count") >= 5)
.orderBy(col("avg_rating").desc())
.limit(10)
)
display(result_df)