Python 如何使用pyspark从json中查找大于值的年龄?

Python 如何使用pyspark从json中查找大于值的年龄?,python,json,apache-spark,pyspark,Python,Json,Apache Spark,Pyspark,我是Pypark的新手。您能帮助我如何使用pyspark从json获取最大年龄吗? 我试过df.filterf['employees.age']>22.show 它抛出错误 org.apache.spark.sql.AnalysisException:无法解析 由于数据类型不匹配,“employees.age>22”:类型不同 在'employees.age>22'数组和int.;'滤器 雇员0.年龄>22岁 我想查找年龄大于22岁的员工。看起来您在employees.age中有一个列表或数组。

我是Pypark的新手。您能帮助我如何使用pyspark从json获取最大年龄吗? 我试过df.filterf['employees.age']>22.show 它抛出错误

org.apache.spark.sql.AnalysisException:无法解析 由于数据类型不匹配,“employees.age>22”:类型不同 在'employees.age>22'数组和int.;'滤器 雇员0.年龄>22岁

我想查找年龄大于22岁的员工。

看起来您在employees.age中有一个列表或数组。 即使您在该数组中只有1项。 试着在代码中使用它

"filter(employees#0.age > 22)"

Spark不能很好地处理多行数据

链接到的示例代码

多行上的单个对象。没有一个对象具有数组

{'age': '54', 'firstName': 'Peter1', 'lastName': 'Jones1'}
{'age': '44', 'firstName': 'Peter2', 'lastName': 'Jones2'}
{'age': '42', 'firstName': 'Peter3', 'lastName': 'Jones3'}
此外,JSON对键和值使用双引号,因此您需要解决这个问题

然后

还有,找到最大年龄

df.groupBy().max("age").show() 

为什么过滤器操作会给你一个最大值?只需复制粘贴df.show5、truncate=False和df.printSchema的输出,并更新问题。我看到了。这并没有找到一个最大值。它删除了小于22的任何内容。如果你的问题没有包含JSON数据,我们无法准确地帮助你。你能粘贴@RameshMaharjan所问的内容吗?除了我,没有人想结束这个问题吗?
df = spark.read().json("file.json") 
df.groupBy().max("age").show()