метод фильтра данных в фрейме pySpark - PullRequest
1 голос
/ 26 января 2020

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

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

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

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

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

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

1 Ответ

2 голосов
/ 26 января 2020

Вы должны заключить свои условия в ()

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

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

...