首页 > 解决方案 > Scala spark 使用逗号作为小数分隔符读取 CSV

问题描述

我尝试用逗号(,)读取databrick(spark scala)中的csv作为小数点分隔符。我使用 badRecordsPath 选项来捕获指定路径中的错误记录,因此我无法将其读取为字符串,然后将“,”替换为“。”。

我尝试读取 csv,但出现以下错误:“java.lang.NumberFormatException:对于输入字符串:“0,939”。

这意味着以“,”作为小数分隔符的数字不能被读取为浮点数。

我的代码是带有模式的简单火花读取:

val schema = new StructType()
.add("mycolumn1","float")
.add("mycolumn2","int")
.add("mycolumn3","timestamp")

并阅读:

spark.read
.options(Map("inferSchema"->"false","delimiter"->";","header"->"true", "timestampFormat" ->"dd/MM/yyyy HH:mm","badRecordsPath" -> path to save bad records))
.schema(schema)
.csv(path to csv)

有人知道我如何将其读为 float 吗?

标签: scalaapache-sparkdatabricks

解决方案


推荐阅读