Spark读取CSV并带有回车符,然后在文本字段中插入新行

问题描述

我正在尝试使用Scala在Spark上读取csv。

其中一个文本字段可以包含回车符(\ c),后跟换行符(\ n)。 适当行的末尾也用相同的方式标记,先返回回车,再换行。您已经可以想象当上述文本字段也包含它们时发生的情况。偶尔会发生这种情况,但是读取功能将它们解释为文件中新行的开始,并产生了令人讨厌的列移位以及包含此文本字段某些部分的额外行。

我已经阅读了许多与我的问题相似的主题。我尝试了大多数解决方案,但没有任何效果。目前,我正在使用以下代码读取CSV,但是它会产生烦人的变化:

val df1 = (spark.read
.option("delimiter","¦")
.option("header",true)
.option("encoding","ISO-8859-1")
.option("header","true")
.option("inferSchema","true")
.csv(s3Location))

我需要编码,因为如果我在没有文件的情况下读取文件,则字段分隔符(¦)将无法正确显示。我尝试.option("multiline","true")来逃避字符,但是没有任何效果

我设法创建的唯一解决方案是使用.option("mode","DROPMALFORMED")删除这些行。但是,由于它们可以携带有用的信息,因此显得很激烈。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)