Spark忽略字符串中的逗号
Posted
技术标签:
【中文标题】Spark忽略字符串中的逗号【英文标题】:Spark ignore commas in string 【发布时间】:2018-02-07 13:06:06 【问题描述】:尝试通过 spark 会话加载 csv,但遇到 .i.e. 中包含双引号和逗号的字符串的问题
"""A"" STAR ACCOUNTING,& TRAINING SOLUTIONS LIMITED"
这会根据上面的字符串创建具有 2 个不同列的数据框,输出:
"""A"" STAR ACCOUNTING
& TRAINING SOLUTIONS LIMITED"
通过 spark session 读取 csv 读取 csv
val df = ss.read
.option("header", true)
.option("ignoreLeadingWhiteSpace", "true")
.csv(csvFile)
.sort(id)
无论如何要读取 csv 文件并跳过字符串中的逗号?
【问题讨论】:
你能发布你正在运行的命令吗? 你是如何阅读文件的?记录已经用引号括起来以避免分隔符冲突。使用 spark csv 你应该很好 用读取 csv 的代码编辑 【参考方案1】:看起来您的数据使用"
作为转义字符,而默认值是\
。您应该在阅读时提供quote
选项:
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.3.0
/_/
Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_151)
Type in expressions to have them evaluated.
Type :help for more information.
scala> spark.read.option("escape", "\"").csv(Seq("\"\"\"A\"\" STAR ACCOUNTING,& TRAINING SOLUTIONS LIMITED").toDS).show(false)
+------------------------------------------------+
|_c0 |
+------------------------------------------------+
|"A" STAR ACCOUNTING,& TRAINING SOLUTIONS LIMITED|
+------------------------------------------------+
【讨论】:
以上是关于Spark忽略字符串中的逗号的主要内容,如果未能解决你的问题,请参考以下文章
拆分由逗号分隔的 JSON blob 列表(忽略 JSON blob 中的逗号)[重复]