Python 使用双引号和换行符读取pySpark中的csv文件

Python 使用双引号和换行符读取pySpark中的csv文件,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我在使用pySpark读取csv文件时遇到问题。我有三列url地址,标题字符串和完整的html文件。最后一个字段在引号中。。。其中引用的任何内容都有双引号,例如test->test,它还包含换行符。我可以用pandas读取这个文件,一切都很好,但当我使用pySpark时,它不会破坏coma上的文本,我不确定分隔符,但可能是html中的换行符。下面是一个示例代码: df = spark.read \ .option("header", "true") \ .csv('path_to

我在使用pySpark读取csv文件时遇到问题。我有三列url地址,标题字符串和完整的html文件。最后一个字段在引号中。。。其中引用的任何内容都有双引号,例如test->test,它还包含换行符。我可以用pandas读取这个文件,一切都很好,但当我使用pySpark时,它不会破坏coma上的文本,我不确定分隔符,但可能是html中的换行符。下面是一个示例代码:

df = spark.read \
    .option("header", "true") \
    .csv('path_to_file')

print( df.limit(2).collect() )
以下是一个不起作用的示例文本:

url,body,title
https://test.com,"<!doctype html >
</html>",title_title
熊猫可以同时使用这两个版本

这似乎有效:

df = (spark.read
      .option("multiline", "true")
      .option("quote", '"')
      .option("header", "true")
      .option("escape", "\\")
      .option("escape", '"')
      .csv('path_to_file')
)
通过scala_2.11.0和spark_2.3.4_hadoop2.7测试,这似乎有效:

df = (spark.read
      .option("multiline", "true")
      .option("quote", '"')
      .option("header", "true")
      .option("escape", "\\")
      .option("escape", '"')
      .csv('path_to_file')
)

如上所述,使用scala_2.11.0和spark_2.3.4_hadoop2.7进行测试,包括spark Reading配置中的选项

 sc.read\
        .option("multiline", "true")\
        .option("quote", '"')\
        .option("header", "true")\
        .option("escape", "\\")\
        .option("escape", '"')\
        .csv(f'{getpathfile()}/files/{file}.csv')

如上所述,在您的Spark Reading配置中包含选项是可行的

 sc.read\
        .option("multiline", "true")\
        .option("quote", '"')\
        .option("header", "true")\
        .option("escape", "\\")\
        .option("escape", '"')\
        .csv(f'{getpathfile()}/files/{file}.csv')

尝试此选项optionquote,\@chlebek我尝试了quote和escape,但无效尝试此选项optionquote,\@chlebek我尝试了quote和escape,但无效上述选项也可用于将spark数据帧写入CSV文件上述选项也可用于将spark数据帧写入CSV文件