GroupedData 的长度“‘GroupedData’类型的对象没有 len()”
Posted
技术标签:
【中文标题】GroupedData 的长度“‘GroupedData’类型的对象没有 len()”【英文标题】:Length of GroupedData "object of type 'GroupedData' has no len()" 【发布时间】:2022-01-01 02:19:03 【问题描述】:我在计算分组数据的长度时遇到问题:
“GroupedData”类型的对象没有 len()
我在 PySpark 中有以下代码:
gb = df.groupBy('A_1')
l = len(gb)
print(l)
但是我得到了这个错误。如何计算gb
的长度?
这段代码可以用pandas运行:
gb = df.groupby(['A_1'])
l = len(gb)
print(l)
但是在 PySpark 中,我遇到了问题。
【问题讨论】:
Spark 不是 Pandas。您不能使用相同的方法。您可以访问 spark doc here。如果你想将 spark 用作 pandas,可以使用koalas 【参考方案1】:问题在于len
的使用。您不能将其与 Spark 一起使用。
我想,你想使用count
。
df = spark.range(10)
print(df.count())
# 10
groupBy
是“部分”步骤。之后没有聚合就不能进行 groupBy 。
如果您只是想计算不同“A_1”的数量,请执行以下操作:
df.select("A_1").distinct().count()
【讨论】:
以上是关于GroupedData 的长度“‘GroupedData’类型的对象没有 len()”的主要内容,如果未能解决你的问题,请参考以下文章
将 pyspark groupedData 转换为 pandas DataFrame
scala - Spark:如何在 groupedData 中获取带有条件的结果集
使用无法直接从GroupedData类调用的方法聚合多个列(如“last()”)并将它们重命名为原始名称[duplicate]