voglio filtrare un Pyspark dataframe con un IN
clausola di SQL-like, come inFiltrare un Pyspark dataframe con SQL-like IN clausola
sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')
dove a
è la tupla (1, 2, 3)
. Sto ottenendo questo errore:
java.lang.RuntimeException: [1.67] failure: ``('' expected but identifier a found
che è fondamentalmente dicendo che si aspettava qualcosa di simile '(1, 2, 3)' invece di una. Il problema è che non riesco a scrivere manualmente i valori in a come viene estratto da un altro lavoro.
Come faccio a filtrare in questo caso?
Per il secondo metodo, è possibile ottenere lo stesso facendo df.where (df.v.isin ({"foo", "bar"})). count() –
Puoi, ma personalmente non mi piace questo approccio. Con 'col' posso facilmente disaccoppiare l'espressione SQL e un particolare oggetto' DataFrame'. Ad esempio, puoi tenere un dizionario di espressioni utili e selezionarle quando necessario. Con l'oggetto DF esplicito devi metterlo in una funzione e non lo compone bene. – zero323