Pyspark 数据帧过滤

Pyspark DataFrame Filtering

我有一个数据框如下:

|Property ID|Location|Price|Bedrooms|Bathrooms|Size|Price SQ Ft|Status|

当我用卧室或浴室过滤它时,它给出了正确答案

df = spark.read.csv('/FileStore/tables/realestate.txt', header=True, inferSchema=True, sep='|')
df.filter(df.Bedrooms==2).show()

但是当我使用 属性 ID 作为 df.filter(df.Property ID==1532201).show() 过滤它时, 我收到一个错误。是因为属性和ID之间有一个space吗?

属性ID之间的space是问题的原因。 您可以遵循的另一种方法如下:

from pyspark.sql import functions as F
df.filter(F.col('Property ID')==1532201).show()

您还可以对 select 列使用方括号表示法:

df.filter(df['Property ID'] == 1532201).show()

或使用原始 SQL 字符串进行过滤:(注意反引号)

df.filter('`Property ID` = 1532201').show()