1

我有一组 Excel 表,我试图通过com.crealytics.spark.excel包通过 spark 读取。在我的 excel 表中,我有一列调查 ID,其中包含整数 ID。当我通过 spark 读取数据时,我看到这些值被转换为双精度值。

从 excel 表中读取时如何保留整数值的格式?

这是我尝试过的:

val df = spark.read.format("com.crealytics.spark.excel")
      .option("location", <somelocation>)
      .option("useHeader", "true")
      .option("treatEmptyValuesAsNulls", "true")
      .option("inferSchema", "true")
      .option("addColorColumns","False")
      .load()

实际价值

在此处输入图像描述

通过 Spark 读取的值

+-----------+
|  Survey ID|
+-----------+
|1.7632889E7|
|1.7632889E7|
|1.7632934E7|
|1.7633233E7|
|1.7633534E7|
|1.7655812E7|
|1.7656079E7|
|1.7930478E7|
|1.7944498E7|
|1.8071246E7|

如果我将列转换为整数,我会得到所需的格式化数据。但是有没有更好的方法来做到这一点?

val finalDf=df.withColumn("Survey ID", col("Survey ID").cast(sql.types.IntegerType))
4

1 回答 1

1

excel 库中存在一个错误(或更确切地说是缺少设置),它将大数字列呈现为科学记数法。见https://github.com/crealytics/spark-excel/issues/126

于 2019-08-05T17:48:43.593 回答