在Spark中读取CSV文件时如何忽略双引号?

一些人

我有一个CSV文件,例如:

col1,col2,col3,col4
"A,B","C", D"

我想将其作为Spark中的数据帧读取,其中每个字段的值都与CSV中写的完全一样(我想将该"字符视为常规字符,然后像其他任何字符一样复制它)。

预期产量:

+----+----+----+----+
|col1|col2|col3|col4|
+----+----+----+----+
|  "A|  B"| "C"|  D"|
+----+----+----+----+

我得到的输出:

+----+----+----+----+
|col1|col2|col3|col4|
+----+----+----+----+
| A,B|   C|  D"|null|
+----+----+----+----+

在pyspark中,我正在这样阅读:

dfr = spark.read.format("csv").option("header", "true").option("inferSchema", "true")

我知道如果我添加这样的选项:

dfr.option("quote", "\u0000")

在上面的示例中,我得到了预期的结果,因为char的功能'"'现在由完成'\u0000',但是如果我的CSV文件包含'\u0000'char,那么我也会得到错误的结果。

因此,我的问题是:如何禁用引号选项,以便没有字符像引号一样起作用?

我的CSV文件可以包含任何字符,我希望将所有字符(逗号除外)简单地复制到它们各自的数据帧单元中。我想知道是否有一种方法可以使用转义选项来完成此任务。

保利

pyspark.sql.DataFrameReader.csv(重点为我的)文档中

quote –设置用于转义带引号的值的单个字符,其中分隔符可以是值的一部分。如果设置为None,则使用默认值“。如果要关闭引号,则需要设置一个空字符串。

dfr = spark.read.csv(
    path="path/to/some/file.csv",
    header="true",
    inferSchema="true",
    quote=""
)
dfr.show()
#+----+----+----+----+
#|col1|col2|col3|col4|
#+----+----+----+----+
#|  "A|  B"| "C"|  D"|
#+----+----+----+----+

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何忽略CSV文件中的双引号?

读取csv文件时,请忽略双引号和标头中的逗号

从 CSV 文件中读取包含在双引号中的数值

如何在读取CSV时删除双引号

在R中读取带双引号的CSV文件

使用双引号正确读取熊猫中的 CSV 文件

如何在Spark中将数据框保存在CSV中时删除列名中的双引号?

在Excel 2010中打开文件时,如何在csv文件中保存双引号和分号?

编写R .csv文件时如何控制双引号

如何从python中的csv文件的索引中删除双引号

如何使用 Pandas 读取 CSV 文件而忽略引号之间的逗号

如何忽略StringBuffer中的双引号

如何在Python中解析双引号的csv文件?

如何使用Python删除csv文件中的双引号(“)?

C ++从文件中读取双引号

使用apache commons csv读取csv文件时跳过双引号

在 Pandas 中使用 read_csv 时忽略双引号 (")

从CSV文件中删除双引号

如果仅非空字段用双引号引起来,我如何读取CSV文件?

如何读取csv文件中用双引号引起来的列表?

Spark DataFrame无法将双引号正确写入csv文件

Spark-读取带引号的csv文件

csv中的双引号元素无法用熊猫读取

如何用双引号引起句子的爆炸。而忽略双引号中的“。”

当字符串包含双引号时,如何将JSON读取到JObject中?

如何从已经包含双引号的文件中读取字符串?

在VB.NET中读取CSV文件时如何忽略换行符?

使用打开的csv时从csv中删除双引号

在.csv文件中使用shell脚本将逗号分割成字符串,但是忽略双引号中的逗号?