You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks PySpark:将Excel列格式从常规改为数值格式

解决Spark Excel输出Decimal列显示为常规格式的问题

直接通过crealytics.spark.excel库参数设置单元格格式

不需要额外依赖openpyxl,com.crealytics.spark.excel本身支持通过styleMap参数指定Excel单元格的显示格式,写入时直接配置即可:

完整代码示例

# 先将目标列转换为decimal(15,3)格式
df = df.withColumn("target_col", df["target_col"].cast("decimal(15,3)"))

# 写入Excel时添加styleMap参数指定数值显示格式
df.write.format("com.crealytics.spark.excel")
  .option("header", True)
  .option("styleMap", "decimal -> \"#,##0.000\"")  # 匹配所有decimal类型列,设置为3位小数的数值格式
  .mode("overwrite")
  .save(outputPath)

关键参数说明

  • styleMap采用[匹配规则] -> [Excel格式字符串]的写法:
    • 针对所有decimal类型列统一设置:decimal -> "#,##0.000"
    • 针对指定列单独设置:"col1: #,##0.000, col2: #,##0.000"(多列用逗号分隔)
  • Excel格式字符串#,##0.000会强制列显示为带千分位分隔符、保留3位小数的数值格式,完全匹配你需要的decimal(15,3)精度。

注意事项

  • 确保使用的com.crealytics.spark.excel版本在2.0.0及以上,旧版本可能不支持styleMap参数
  • ADLS路径的访问权限已正常配置(你能写入文件说明权限无问题,此条仅作排查参考)

内容的提问来源于stack exchange,提问作者Apoorv Tomar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:20:00