【发布时间】:2019-06-28 14:49:20
【问题描述】:
我有一个 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 文件可以包含任何字符,并且我希望将所有字符(逗号除外)简单地复制到它们各自的数据框单元格中。我想知道是否有办法使用转义选项来完成此操作。
【问题讨论】:
标签: apache-spark pyspark