Pyspark Pypark AttributeError:';功能';对象没有属性';年龄';

Pyspark Pypark AttributeError:';功能';对象没有属性';年龄';,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我试图使用pyspark访问嵌套列,但它似乎出现了一个奇怪的错误: AttributeError:“函数”对象没有属性“年龄” 以下是df的模式: root |-- person: struct (nullable = true) | |-- age: long (nullable = true) | |-- name: string (nullable = true) | |-- address: string (nullable = true) 我可以访问age的

我试图使用pyspark访问嵌套列,但它似乎出现了一个奇怪的错误:

AttributeError:“函数”对象没有属性“年龄”

以下是df的模式:

root
 |-- person: struct (nullable = true)
 |    |-- age: long (nullable = true)
 |    |-- name: string (nullable = true)
 |    |-- address: string (nullable = true)
我可以访问
age
的唯一方法是:

df = spark.read.parquet(myuri)
tmp = df.select("person.*")
tmp.where(tmp.age > 18).count()

但是我仍然想理解为什么直接访问不起作用。

Hi Derek,因为没有提供回溯,我假设您正在尝试访问一个函数,但是一种访问方法是使用expr,而不使用select后跟where
df.filter(expr(“person.age>17”)).count()
df = spark.read.parquet(myuri)
tmp = df.select("person.*")
tmp.where(tmp.age > 18).count()