【发布时间】:2025-11-25 06:25:02
【问题描述】:
我正在使用 PySpark(Python 3.6 和 Spark 2.1.1)并尝试使用 spark.read.format("com.crealytics.spark. excel"),但它推断日期类型列的双精度。
例子:
输入 -
df = spark.read.format("com.crealytics.spark.excel").\
option("location", "D:\\Users\\ABC\\Desktop\\TmpData\\Input.xlsm").\
option("spark.read.simpleMode","true"). \
option("treatEmptyValuesAsNulls", "true").\
option("addColorColumns", "false").\
option("useHeader", "true").\ option("inferSchema", "true").\
load("com.databricks.spark.csv")
结果:
Name | Age | Gender | DateOfApplication
________________________________________
X | 12 | F | 5/20/2015
Y | 15 | F | 5/28/2015
Z | 14 | F | 5/29/2015
打印模式 -
df.printSchema()
root
|-- Name: string (nullable = true)
|-- Age: double (nullable = true)
|-- Gender: string (nullable = true)
|-- DateOfApplication: double (nullable = true)
正在做.show -
df.show()
Name | Age | Gender | DateOfApplication
________________________________________
X | 12.0 | F | 42144.0
Y | 15.0 | F | 16836.0
Z | 14.0 | F | 42152.0
在读取数据集时,日期或任何其他数值被转换为双精度(日期的特殊问题是它完全改变了难以恢复到原始日期的值。
我可以帮忙吗?
【问题讨论】:
标签: excel python-3.x apache-spark pyspark pyspark-sql