我正在尝试使用 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,但无法纠正错误。 我正确包含的唯一选项是“分隔符”。
将
quote
选项设置为空字符串:
df = spark.read.options(delimiter=";", quote="").csv(path, header=False, inferSchema=False)
根据文档:
设置用于转义带引号的值的单个字符,其中分隔符可以是值的一部分。 为了阅读,如果你想关闭引号,你需要设置一个空字符串而不是null。对于写入,如果设置了空字符串,则使用 u0000(空字符)。