我想通过如下所述从csv文件中读取输入来创建Spark数据框(不带双引号)。
这是我的代码,但到目前为止没有用。
val empDF = spark.read.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.option("quote", "\"")
.option("escape", "\"")
.load("C:/Users/z011348/Desktop/Spark/EmpWithQuotes.csv")
.toDF()
我的预期输出不是在输出中添加双引号,但我得到的是垃圾输出。
+---+-----+----------+----+
|eno|ename| eloc|esal|
+---+-----+----------+----+
| 11|�abx�| �chennai�|1000|
| 22|�abr�| �hyd�|3000|
谁能帮忙吗?
如果您可以使用Spark的默认csv格式而不是com.databricks.spark.csv
,则应可以正常工作
spark.read
.option("header", "true")
.option("inferSchema", "true")
.option("quote", "\"")
.option("escape", "\"")
.csv("src/main/resources/sample.csv")
.show()
看来它们不是普通的双引号。您可以尝试找到哪个字符并将其转义,或者可以使用子字符串(如果您确信每一行都有引号和尾引号):
empDF.withColumn("ename", substring(col("ename"), 1, length(col("ename"))-2))