Pyspark 数据帧过滤

问题描述

我有一个如下的数据框:

|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() 对其进行过滤时, 我收到一个错误。是不是因为 Property 和 ID 之间有空格?

解决方法

PropertyID 之间的 空格 是问题的原因。 您可以遵循的另一种方法如下:

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

您也可以使用方括号符号来选择列:

go mod init

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

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