Zum Hauptinhalt springen
DuckDB kann Parquet-Dateien direkt über HTTP ohne vorherigen Download oder Einrichtung abfragen. Dies ist der schnellste Weg, um die Daten interaktiv zu erkunden.

Setup

Installiere DuckDB und führe anschließend Abfragen direkt aus:
duckdb
SELECT sender, COUNT(*) as n
FROM read_parquet('https://data.jmail.world/v1/emails-slim.parquet')
GROUP BY sender ORDER BY n DESC LIMIT 20;

Abfragebeispiele

E-Mails pro Absender zählen

SELECT sender, COUNT(*) as n
FROM read_parquet('https://data.jmail.world/v1/emails-slim.parquet')
GROUP BY sender ORDER BY n DESC LIMIT 20;

Von Epstein versendete E-Mails

SELECT subject, sent_at, to_recipients
FROM read_parquet('https://data.jmail.world/v1/emails-slim.parquet')
WHERE epstein_is_sender = true
ORDER BY sent_at DESC LIMIT 20;

Dokumente durchsuchen

SELECT original_filename, document_description, page_count
FROM read_parquet('https://data.jmail.world/v1/documents.parquet')
WHERE document_description ILIKE '%flight%'
LIMIT 20;

Fotos mit Personen verknüpfen

SELECT p.name, COUNT(*) as appearances
FROM read_parquet('https://data.jmail.world/v1/photo_faces.parquet') pf
JOIN read_parquet('https://data.jmail.world/v1/people.parquet') p
  ON pf.person_id = p.id
GROUP BY p.name ORDER BY appearances DESC;

Sterneanzahl nach Entitätstyp

SELECT entity_type, SUM(count) as total_stars
FROM read_parquet('https://data.jmail.world/v1/star_counts.parquet')
GROUP BY entity_type ORDER BY total_stars DESC;

Verwendung mit Polars

Polars kann auch Parquet-Dateien über HTTP lesen:
import polars as pl

df = pl.read_parquet("https://data.jmail.world/v1/emails-slim.parquet")
print(df.group_by("sender").len().sort("len", descending=True).head(20))

Verwendung mit pandas

import pandas as pd

df = pd.read_parquet("https://data.jmail.world/v1/emails-slim.parquet")
print(df.groupby("sender").size().sort_values(ascending=False).head(20))