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