Considerare il seguente problema. Dato:Algebra dinamica dinamica su Spark
- Una collezione di set
- un'espressione booleana su di loro che si riceve in modo dinamico
Ritorna l'insieme risultante.
Spark dispone di algoritmi o librerie efficienti per risolvere questo problema generale?
Ecco un giocattolo esempio per illustrare il problema concettualmente:
val X = Set("A1", "A2", "A3", "A4")
val Y = Set("A2", "A4", "A5")
val collection = Set(X, Y)
val expression = "X and Y"
Sto cercando un modo per implementare un generale solve_expression
in modo tale che, nell'esempio di cui sopra:
output = solve_expression(expression, collection)
Risultati:
Set("A2", "A5")
Sto lavorando con insiemi con milioni di elementi e espressioni booleane che vengono come stringhe. Ciò che è importante è che ogni atomo nell'espressione (ad esempio "X" e "Y" sopra) sono insiemi. Le espressioni e i set sono dinamici (le operazioni non possono essere hardcoded, poiché li riceviamo come input e non sappiamo cosa siano in anticipo).
Sono flessibile con la rappresentazione del problema. I set effettivi possono essere di tipo Set
, ad es. tenendo stringhe (ad esempio "A1", "A2"), codificate come vettori binari, o qualsiasi altra cosa che renda questo compatibile con Spark.
fa Spark ha nessun librerie a analizzare e risolvere espressioni booleane generali sul set?
Qual è il problema con l'uso di 'X.union (Y)'? O vuoi soluzioni out-of-heap? – ipoteka
Perché il downvote? Ti dispiacerebbe elaborare? –
Grazie @ipoteka Le espressioni sono dinamiche (non possono essere codificate in anticipo). –