使用spark.read.csv读取含XML字段的CSV时XML被拆分为多行如何处理
Databricks读取含XML字段CSV出现行拆分的解决方案
问题原因
CSV中的XML字段内部自带换行符,Spark默认读取CSV时会将\n作为行分隔符,直接拆分数据行,导致单个XML字段被拆分到多行。
解决方案
在spark.read.csv方法中添加multiLine等兼容字段内特殊字符的参数即可,修改后的读取代码如下:
sourceDf = spark.read.csv( sourceFilePath, sep=',', header=True, inferSchema=True, multiLine=True, # 支持字段内包含换行符,不会直接按换行拆分整行 quote='"', # 显式指定CSV字段的包裹符,符合标准CSV格式约定 escape='"' # 配置字段内部双引号的转义规则 )
补充说明
如果调整参数后仍存在拆分问题,可先校验源CSV文件是否符合标准格式:所有包含换行、逗号、双引号的特殊字段,都需要被双引号完整包裹,否则Spark无法正确识别字段边界。
读取正常后即可继续对XML字段做解析处理,不会影响ADF管道的后续逻辑。
内容的提问来源于stack exchange,提问作者SAB
相关产品推荐
相关产品推荐

