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

Spark使用crealytics读取Excel百分比值格式保留问题咨询

解决方案

首先明确两个基础逻辑:

  1. Apache Spark本身没有内置专属的百分比数据类型,Excel中百分比单元格的底层存储值本身就是浮点小数,只是附加了百分比格式的展示规则
  2. 你使用的crealytics spark-excel库原生支持保留单元格格式读取,不需要关闭类型推断,也不需要手动做类型转换,只需新增两个读取参数即可

修改后的代码

val spark = SparkSession
    .builder
    .appName("trimTest")
    .master("local[*]")
    .getOrCreate()

val df = spark.read
    .format("com.crealytics.spark.excel")
    .option("header", "true")
    .option("maxRowsInMemory", 1000)
    .option("inferSchema", "true")
    // 新增两个参数保留百分比格式
    .option("keepOriginalFormat", "true")
    // 如果需要完全保留各个单元格原有的格式差异(比如有的是整数百分比、有的是两位小数),可以删除下面这行配置
    .option("format.percentage", "0.##%")
    .load("data/percentage.xlsx")

df.printSchema()
df.show(10)

说明

  • 开启keepOriginalFormat后,读取过程会自动应用Excel单元格的原有格式规则,输出时直接展示百分比格式,不会返回原始浮点值
  • 读取后的列schema仍然是数值类型(DoubleType),不会被转成字符串,符合你的要求
  • 该特性需要crealytics spark-excel版本≥0.13.7,版本过低的话先升级依赖即可

内容的提问来源于stack exchange,提问作者Sarvesh Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:15:03