【发布时间】:2020-12-13 08:32:05
【问题描述】:
我正在尝试读取一列带有双引号的 csv 文件,如下所示。
James,Butt,"Benton, John B Jr",6649 N Blue Gum St
Josephine,Darakjy,"Chanay, Jeffrey A Esq",4 B Blue Ridge Blvd
Art,Venere,"Chemel, James L Cpa",8 W Cerritos Ave #54
Lenna,Paprocki,Feltz Printing Service,639 Main St,Anchorage
Donette,Foller,Printing Dimensions,34 Center St,Hamilton
Simona,Morasca,"Chapman, Ross E Esq",3 Mcauley Dr
我正在使用以下代码将双引号保留为 csv 文件中的内容。(有双引号的行很少,没有双引号)
val df_usdata = spark.read.format("com.databricks.spark.csv")//
.option("header","true")//
.option("quote","\"")//
.load("file:///E://data//csvdata.csv")
df_usdata.show(false)
但它没有保留数据框中的双引号,但它应该保留。 .option("quote",""") 不起作用。我使用的是 Spark 2.3.1 版本。
输出应该如下所示。
+----------+---------+-------------------------+---------------------+
|first_name|last_name|company_name |address |
+----------+---------+-------------------------+---------------------+
|James |Butt |"Benton, John B Jr" |6649 N Blue Gum St |
|Josephine |Darakjy |"Chanay, Jeffrey A Esq" |4 B Blue Ridge Blvd |
|Art |Venere |"Chemel, James L Cpa" |8 W Cerritos Ave #54 |
|Lenna |Paprocki |Feltz Printing Service |639 Main St |
|Donette |Foller |Printing Dimensions |34 Center St |
|Simona |Morasca |"Chapman, Ross E Esq" |3 Mcauley Dr |
+----------+---------+-------------------------+---------------------+
【问题讨论】:
-
如果你设置了
.option("quote","\""),那么spark将不会保留"。 -
那么,保留 " (双引号)的解决方案是什么。我尝试了 .option("quote","") 和 .option("quote","\u0000") 。他们确实保留了引号,但由于逗号分隔符,列值已被拆分到下一列。您可以看到以下结果。
标签: apache-spark-sql