scala - 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 吗?
解决方案
推荐阅读
- google-chrome - 节点检查器不显示源文件
- html - 我可以在标签内换行吗?
- javascript - ReactJS:如何将我的单页应用程序托管在与根文件夹不同的目录中?
- python - 在 pyspark 中加入两个数据帧会导致“检测到隐式笛卡尔积”错误
- java - 如何绕过或不调用在另一个方法内部调用的方法
- reactjs - 直接从客户端调用 post api 时出现 CORS 错误
- azure - 按日期划分的 Azure Blob 复制分区
- google-apps-script - 如何将我的谷歌日历事件的 ID 转换为正确的格式,以便日历 API 在我的脚本中读取?
- neo4j - Did I just increase the db hit count (x2) by adding a node label into my cypher query?
- php - Laravel:防止 API 资源在模型更新后被修改