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

标签 python apache-spark pyspark

我想将列的数字格式化为逗号分隔(货币格式)。

例如 - 我有专栏

input column

输出应该是

output column

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

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

最佳答案

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      |
+---+--------+----------+

关于python - 如何格式化pyspark中的数字列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63317002/

相关文章:

Python Keyring,如何传递主密码

python - 如何从 DF 中获取在 pyspark (spark) 中包含值 None 的行

python - PySpark:TypeError:条件应为字符串或列

apache-spark - 有效地找到与给定向量的前 K 个余弦相似向量

python - 如何选择 pandas DataFrame 中异常值的边界?

Python win32 Excel 将图表粘贴为位图 (PasteSpecial)?

scala - 为什么 spark-shell 无法加载带有导入 RDD 的类的文件?

apache-spark - 加载表时从 phoenix 过滤

python - 从列表中删除项目时出现问题

hadoop - Hive动态分区问题