Chcę filtrować Pyspark DataFrame z SQL-like IN
klauzuli, jak wFiltrowanie Pyspark DataFrame z SQL-jak w punkcie
sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')
gdzie a
jest krotka (1, 2, 3)
. Dostaję taki błąd:
java.lang.RuntimeException: [1.67] failure: ``('' expected but identifier a found
który jest w zasadzie mówiąc to spodziewałem się czegoś podobnego '(1, 2, 3)' zamiast. Problem polega na tym, że nie mogę ręcznie zapisać wartości w wyciągu z innego zadania.
Jak filtrować w tym przypadku?
Na drugim sposobie, można osiągnąć to samo, wykonując df.where (df.v.isin ({"foo", "bar"})). count() –
Możesz, ale osobiście nie podoba mi się to podejście. Za pomocą 'col' mogę łatwo oddzielić wyrażenie SQL i konkretny obiekt' DataFrame'. Możesz na przykład przechowywać słownik użytecznych wyrażeń i wybierać je w razie potrzeby. Z wyraźnym obiektem DF będziesz musiał umieścić go w funkcji i nie komponuje się tak dobrze. – zero323