Databricks - CSV 未正确加载
Posted
技术标签:
【中文标题】Databricks - CSV 未正确加载【英文标题】:Databricks - CSV not loading properly 【发布时间】:2019-01-15 01:54:12 【问题描述】:我有一个简单的 csv 文件,它是用管道分隔的,我可以将其加载到 Databricks 中,然后显示 df,它可以很好地显示。然后我尝试使用格式相同的主数据集并从 SQL 服务器导出。加载后,输出显示它已加载(列出字段名称和它推断的数据类型——所有字符串,尽管这不是一个好兆头)
df = spark.read.format("csv").options(header='true', quote='"', delimiter="|",ignoreLeadingWhiteSpace='true',inferSchema='true').load("/mnt/gl/mainfile.csv")
然后我显示 (df),但我没有看到很好的显示。相反,它显示以下内容:
Job 34 View
(Stages: 1/1)
Job 35 View
(Stages: 1/1)
Job 36 View
(Stages: 1/1)
显然 csv 在这里有问题,但我不知道如何解决这个问题 - 我已经很小心如何从 SQL 服务器导出它,所以不确定我会在那里做些什么不同的事情。
【问题讨论】:
尝试读取文本文件,看看行是怎样的。 【参考方案1】:好的,我解决了。如果您遇到类似问题,则可能意味着您的 csv 格式不正确。使用像 Ron's Editor 这样的文本编辑器打开你的简历,然后直观地检查数据。由于某种原因,在我的数据集上,最后一个字段是 $ 金额,前面有一个 ",但不是在它的末尾。
例如"12344.67
不知道为什么 SQL Server 会这样做(我使用的是导入/导出向导),但我从导出的 csv 中去掉了 " 分隔符,现在它可以正常工作了
【讨论】:
很好的发现。是的,csv 是一种糟糕的格式(感谢 M$),但这就是我们所拥有的。以上是关于Databricks - CSV 未正确加载的主要内容,如果未能解决你的问题,请参考以下文章
在 ADLS2 中合并通过 DataBricks 准备的 CSV 文件
Databricks 社区 - 不识别列(Csv 文件 - Python)