我有一个CSV文件,其中包含带有逗号(,(的名称字段,
并转义了
id,name
"10","Ashraful, Islam"
我正在从 pyspark 读取 csv 文件
test = spark.read.format("csv").option("sep", ",").option("escape", "\").option("inferSchema", "true").option("header", "true").load("test.csv")
test.show()
名称应Ashraful, Islam
,但获取输出
+---+----------------+
| id| name|
+---+----------------+
| 10|Ashraful, Islam|
+---+----------------+
只需使用:
df = spark.read.csv('file:///mypath.../myFile.csv', sep=',', header=True)
df.show()
这给出了输出:
+---+---------------+
| id| name|
+---+---------------+
| 10|Ashraful, Islam|
+---+---------------+
编辑:我无法用您拥有的输入文件复制您的问题,但如果它仍然存在,您可以通过解决方法解决它。只需替换数据帧中的"\","(或任何其他转义的特殊字符(。
您可以
from pyspark.sql.functions import *
df = spark.read.csv('file:///home/perfman/todel.csv', sep=',', header=True)
df.withColumn('nameClean', regexp_replace('name', '\,', ',')).show()
>>>
+---+----------------+---------------+
| id| name| nameClean|
+---+----------------+---------------+
| 10|Ashraful, Islam|Ashraful, Islam|
+---+----------------+---------------+