Scala Spark 处理带逗号的单引号字符

Posted

技术标签:

【中文标题】Scala Spark 处理带逗号的单引号字符【英文标题】:Scala Spark Handle Single Quote Characters With Commas 【发布时间】:2020-09-03 12:48:26 【问题描述】:

我正在使用 scala 在 Spark 中读取 CSV,它在下面的示例中正确处理第一行,但在示例的第二行中,该行有一个结束引号字符,但第一列没有前导引号字符。这会通过移动数据并在最终结果中输出bad|col 导致问题,这是不正确的。

"good,col","good,col"
bad,col","good,col"

在使用 scala 在 spark 中读取文件时,是否有一个选项可以处理选项规范中没有前导(或结尾)引号的引号字符?

【问题讨论】:

【参考方案1】:

嗯...通过使用rdd和一些替换,我可以获得你想要的。

val df = rdd.map(r => (r.replaceAll("\",\"", "|").replaceAll("\"", "").split("\\|"))).map case Array(a, b) => (a, b) .toDF("col1", "col2")
df.show()

+--------+--------+
|    col1|    col2|
+--------+--------+
|good,col|good,col|
| bad,col|good,col|
+--------+--------+

【讨论】:

以上是关于Scala Spark 处理带逗号的单引号字符的主要内容,如果未能解决你的问题,请参考以下文章