Python 更改pyspark show()中变量的格式
我需要在pyspark中格式化group by的计数值Python 更改pyspark show()中变量的格式,python,pyspark,group-by,apache-spark-sql,format,Python,Pyspark,Group By,Apache Spark Sql,Format,我需要在pyspark中格式化group by的计数值 df.groupBy('PURCHASE').count().show() 我想用逗号作为千位分隔符来显示count列 |PURCHASE| count | +--------+--------+ | 202003|1,426,702| | 202002|281,184 | | 202001|94,333 | 尝试了以下操作,但出现了键入错误 df.groupBy('PURCHASE').count().withColumn(
df.groupBy('PURCHASE').count().show()
我想用逗号作为千位分隔符来显示count列
|PURCHASE| count |
+--------+--------+
| 202003|1,426,702|
| 202002|281,184 |
| 202001|94,333 |
尝试了以下操作,但出现了键入错误
df.groupBy('PURCHASE').count().withColumn('cnt','{:,}'.format(F.col('count'))).show()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-29-936d1cb519c9> in <module>
----> 1 df.groupBy('PURCHASE').count().withColumn('cnt','{:,}'.format(F.col('count'))).show()
TypeError: unsupported format string passed to Column.__format__
df.groupBy('PURCHASE').count().withColumn('cnt','{:,}.format(F.col('count')).show()
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
---->1 df.groupBy('PURCHASE').count().withColumn('cnt','{:,}'。格式(F.col('count')).show()
TypeError:传递到列的格式字符串不受支持。\uu格式__
有什么帮助吗?在Spark中使用格式化\u number()
:
它将列的格式设置为“#”、“###”、“##.##”等格式,四舍五入到小数点后的“d”位。在我们的例子中,我们需要0
小数位
from pyspark.sql.functions import *
df.withColumn("count", format_number("count",0)).show()
+--------+---------+
|PURCHASE| count|
+--------+---------+
| 202003|1,426,702|
| 202002| 281,184|
| 202001| 94,333|
+--------+---------+
值得注意的是,它以字符串形式返回结果。在Spark中使用格式\u number()
:
它将列的格式设置为“#”、“###”、“##.##”等格式,四舍五入到小数点后的“d”位。在我们的例子中,我们需要0
小数位
from pyspark.sql.functions import *
df.withColumn("count", format_number("count",0)).show()
+--------+---------+
|PURCHASE| count|
+--------+---------+
| 202003|1,426,702|
| 202002| 281,184|
| 202001| 94,333|
+--------+---------+
值得注意的是,它以字符串形式返回结果