用spark读取csv的双引号问题

问题描述 投票:0回答:1

我正在尝试使用 python 用 Spark 读取 csv。 csv 文件有 5 个字段:姓名、姓氏、地址、电话号码、性别。 csv 文件的地址字段中有一行带双引号的行,如下所示:

John;Cenna;"main street;369526544;male

读取的代码是:

df = spark.read.option("delimiter", ";").csv(path, header=False, inferSchema=False)

结果,我检索到:

Name = John
LastName = Cenna
Address = "main street;369526544;male
PhoneNumber = null
Gender = null

预期结果是:

Name = John
LastName = Cenna
Address = "main street
PhoneNumber = 369526544
Gender = male

我尝试修改一些选项,如 quote、quoteAll、escape、escapeQuotes,但无法纠正错误。 我正确包含的唯一选项是“分隔符”。

python csv apache-spark
1个回答
0
投票

quote
选项设置为空字符串:

df = spark.read.options(delimiter=";", quote="").csv(path, header=False, inferSchema=False)

根据文档

设置用于转义带引号的值的单个字符,其中分隔符可以是值的一部分。 为了阅读,如果你想关闭引号,你需要设置一个空字符串而不是null。对于写入,如果设置了空字符串,则使用 u0000(空字符)。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.