问题描述
df_join = (
df.join(df1,df.serialnumber == df1.entityid)
.distinct()
.groupBy("SW_version").count().show(truncate=False)
我需要添加总计行,将计数列中的所有值相加。
目前,代码的结果是:
+-----------+-----+
|SW_version |count|
+-----------+-----+
|SG4J000078C|63 |
|SG4J000092C|670 |
|SG4J000094C|43227|
+-----------+-----+
解决方法
在这种情况下,您可以使用PicklingError Traceback (most recent call last)
<ipython-input-123-1bf65fd467e6> in <module>()
----> 1 pickle.dump(vect,open(n_gram_pickle_file,'wb'))
PicklingError: Can't pickle <function <lambda> at 0x7f6d3f7ae6a8>: attribute lookup <lambda> on
__main__ failed
代替rollup
。汇总将产生另外一个具有groupBy
组的行,并为所有行聚合。
对于null
这样:
df
+-------+
|version|
+-------+
| A|
| A|
| B|
| B|
| B|
| C|
+-------+
将返回:
df.rollup("version").count().sort("version",ascending=False).show()
您可以在这篇What is the difference between cube,rollup and groupBy operators?
中阅读有关汇总的更多信息。