问题描述
我正在尝试使用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 (将#修改为@)