Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改pyspark show()中变量的格式_Python_Pyspark_Group By_Apache Spark Sql_Format - Fatal编程技术网

Python 更改pyspark show()中变量的格式

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(

我需要在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('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|
+--------+---------+
值得注意的是,它以字符串形式返回结果