如何格式化pyspark中的数字列?

Him*_*tra 2 python apache-spark pyspark

我想将列号的格式设置为逗号分隔(货币格式)。

例如 - 我有专栏

输入栏

输出应该是

输出栏

我尝试过使用'{:,.2f}'.format(col("value")),但无法通过创建 udf 来应用此功能。

注意:该列中还存在空值。

Lam*_*nus 7

有一个format_number函数可以将货币格式设置为四舍五入到第二个参数的数字。

import pyspark.sql.functions as F

df.withColumn('format_num', F.format_number('num', 0)) \
  .show(10, False)

+---+--------+----------+
|id |num     |format_num|
+---+--------+----------+
|1  |123525  |123,525   |
|2  |13245123|13,245,123|
|3  |null    |null      |
+---+--------+----------+
Run Code Online (Sandbox Code Playgroud)