【问题标题】:Length of GroupedData "object of type 'GroupedData' has no len()"GroupedData 的长度“‘GroupedData’类型的对象没有 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
标签:
python
pyspark
group-by
apache-spark-sql
【解决方案1】:
问题在于len 的使用。您不能将其与 Spark 一起使用。
我想,你想使用count。
df = spark.range(10)
print(df.count())
# 10
groupBy 是“部分”步骤。之后没有聚合就不能进行 groupBy 。
如果您只是想计算不同“A_1”的数量,请执行以下操作:
df.select("A_1").distinct().count()