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 文件

数据未从csv文件正确加载到hive表

Databricks 社区 - 不识别列(Csv 文件 - Python)

无法在 azure databricks 中使用 spark 读取 csv 文件

使用 CLIXML 的 Spark 数据框

databricks spark sql复制到不加载数据