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()
我有一个数据框如下:
|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()