Betrachten Sie das folgende Problem. Gegeben:Dynamic Set Algebra on Spark
- Eine Sammlung von Sätzen
- Ein Boolescher Ausdruck auf ihnen, die dynamisch
Return die resultierende Menge empfangen wird.
Does Funken haben keine effizienten Algorithmen oder Bibliotheken dieses allgemeine Problem zu lösen? Hier
ist ein Spielzeug Beispiel das Problem konzeptionell zu illustrieren:
val X = Set("A1", "A2", "A3", "A4")
val Y = Set("A2", "A4", "A5")
val collection = Set(X, Y)
val expression = "X and Y"
ich nach einem Weg suchen eine allgemeine solve_expression
so dass der Implementierung, in dem obigen Beispiel:
output = solve_expression(expression, collection)
Ergebnisse in:
Set("A2", "A5")
ich mit Sätzen mit Millionen von Artikeln arbeitete, und Booleschen Ausdrücken, die als Strings kommen. Was wichtig ist, ist, dass jedes Atom in dem Ausdruck (z. B. "X" und "Y" oben) Sätze sind. Die Ausdrücke und Mengen sind dynamische (die Operationen können nicht hart-codiert werden, da wir sie als eine Eingabe erhalten und wir nicht wissen, was sie vorher sind).
Ich bin flexibel mit der Darstellung des Problems. Die tatsächlichen Sätze können vom Typ Set
, z.B. Halten von Zeichenfolgen (z. B. "A1", "A2"), codiert als binäre Vektoren oder irgendetwas anderes, das dies für Spark zugänglich macht.
Does Funken haben keine Bibliotheken zu analysieren und allgemeine Boolesche Ausdrücke auf Sätze lösen?
Was ist das Problem mit 'X.union (Y)'? Oder möchten Sie Lösungen außerhalb des Heaps? – ipoteka
Warum der Downvote? Würde es Ihnen etwas ausmachen, zu erarbeiten? –
Dank @ipoteka Die Ausdrücke sind dynamisch (sie können nicht im Voraus hart-codiert werden). –