Метод фильтра данных pySpark

Я использую среду выполнения Databricks 6.3 и использую pySpark. У меня есть кадр данных df_1. SalesVolume — целое число, а AveragePrice — строка.

Когда я выполняю приведенный ниже код, код запускается, и я получаю правильный вывод.

display(df_1.filter('SalesVolume>10000 and AveragePrice>70000'))

Но приведенный ниже код заканчивается ошибкой; «py4j.Py4JException: метод и ([класс java.lang.Integer]) не существует»

display(df_1.filter(df_1['SalesVolume']>10000 & df_1['AveragePrice']>7000))

Почему первый работает, а второй нет?


person ekan    schedule 26.01.2020    source источник
comment
Я считаю, что вам нужно поместить условия в фигурные скобки, если вы используете несколько условий.   -  person pissall    schedule 26.01.2020


Ответы (1)


вы должны обернуть свои условия в ()

display(df_1.filter((df_1['SalesVolume']>10000) & (df_1['AveragePrice']>7000)))

Фильтр принимает синтаксис, подобный SQL, или синтаксис, подобный фрейму данных, первый работает, потому что это допустимый синтаксис, подобный sql. а второй нет.

person Ravi    schedule 26.01.2020