pySpark数据框过滤器方法

时间:2020-01-26 18:38:41

标签: pyspark databricks pyspark-dataframes

我使用Databricks运行时6.3并使用pySpark。我有一个数据框df_1。 SalesVolume是一个整数,而AveragePrice是一个字符串。

当我执行以下代码时,代码将运行并获得正确的输出。

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

但是,下面的代码最终会出错; “ py4j.Py4JException:方法and([[class java.lang.Integer])不存在”

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

为什么第一个有效,但第二个无效?

1 个答案:

答案 0 :(得分:2)

您必须将条件包装在()

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

过滤器接受类似SQL的语法或类似于数据帧的语法,第一种有效,因为它是有效的类似SQL的语法。但是第二个不是。