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 处理带逗号的单引号字符的主要内容,如果未能解决你的问题,请参考以下文章
Liquibase CSV loadData 失败,带引号的字符串包含逗号
如何在 Spark Scala 数据框中拆分逗号分隔的字符串并获取 n 个值?