Ich habe zwei Datenrahmen: a (~600 Mio. Zeilen) und b (~2 Mio. Zeilen). Was ist der beste Ansatz, um b mit a zu verbinden, wenn 1 Gleichheitsbedingung und 2 Ungleichheitsbedingungen für die jeweiligen Spalten verwendet werden?
a_1 = b_1
a_2 >= b_2
a_3 >= b_3
Ich habe bisher die folgenden Wege erkundet:
Polars:
join_asof(): erlaubt nur 1 Ungleichheitsbedingung
join_where() mit filter(): Selbst bei einem kleinen Toleranzfenster gehen der Standard-Polars-Installation während des Joins die Zeilen aus (4,3B Zeilenlimit) und der Polars-u64-idx-Installation gehen die Zeilen aus Speicher (512GB)
[*]DuckDB: ASOF LEFT JOIN: erlaubt auch nur 1 Ungleichheitsbedingung
< li>Numba: Da das oben Gesagte nicht funktioniert hat, habe ich versucht, meine eigene Funktion „join_asof()“ zu erstellen – siehe Code unten. Es funktioniert gut, aber mit zunehmender Länge von a wird es unerschwinglich langsam. Ich habe verschiedene Konfigurationen von for/while-Schleifen und Filtern ausprobiert, alle mit ähnlichen Ergebnissen.
Jetzt gehen mir etwas die Ideen aus ... Was wäre ein effizienterer Weg, dies umzusetzen?
Vielen Dank
Ich habe zwei Datenrahmen: [b]a (~600 Mio. Zeilen)[/b] und [b]b (~2 Mio. Zeilen)[/b]. Was ist der beste Ansatz, um b mit a zu verbinden, wenn 1 Gleichheitsbedingung und [b]2 Ungleichheitsbedingungen[/b] für die jeweiligen Spalten verwendet werden? [list] [*] a_1 = b_1 [*]a_2 >= b_2 [*]a_3 >= b_3 [/list] Ich habe bisher die folgenden Wege erkundet: [list] [*][b]Polars[/b]:
join_asof(): erlaubt nur 1 Ungleichheitsbedingung[*]join_where() mit filter(): Selbst bei einem kleinen Toleranzfenster gehen der Standard-Polars-Installation während des Joins die Zeilen aus (4,3B Zeilenlimit) und der Polars-u64-idx-Installation gehen die Zeilen aus Speicher (512GB) [/list]
[*][b]DuckDB[/b]: ASOF LEFT JOIN: erlaubt auch nur 1 Ungleichheitsbedingung < li>[b]Numba[/b]: Da das oben Gesagte nicht funktioniert hat, habe ich versucht, meine eigene Funktion „join_asof()“ zu erstellen – siehe Code unten. Es funktioniert gut, aber mit zunehmender Länge von a wird es unerschwinglich langsam. Ich habe verschiedene Konfigurationen von for/while-Schleifen und Filtern ausprobiert, alle mit ähnlichen Ergebnissen.
Jetzt gehen mir etwas die Ideen aus ... Was wäre ein effizienterer Weg, dies umzusetzen? Vielen Dank [code]import numba as nb import numpy as np import polars as pl import time
Kann jemand helfen? Ich wollte Spalten aus Join-Tabellen in der Laravel-Ansicht anzeigen. Eine bestimmte Spalte enthält JSON-Daten.
Tabelle:
ref_code_exam