当前位置: 首页 > 知识库问答 >
问题:

Spark 2.0 Scala-读取带有转义分隔符的csv文件

轩辕瑞
2023-03-14
  spark.read.options(Map(
    "sep" -> ",",
    "encoding" -> "utf-8",
    "quote" -> "",
    "escape" -> "\\",
    "mode" -> "PERMISSIVE",
    "nullValue" -> ""
    Joe Bloggs,Dublin\,Ireland
    Joseph Smith,Salt Lake City\,\
    Utah
  Name           |       City
-----------------|---------------
Joe Bloggs       | Dublin,Ireland
Joseph Smith     | Salt Lake City,
Utah

共有1个答案

乐正晟
2023-03-14

CSV阅读器似乎不支持这一点(请参见https://github.com/databricks/spark-csv/issues/390)。

我猜最简单的方法是手动解析行;一点也不理想,但仍然有效,也不太难。

您可以使用负的lookbehind regex拆分行,例如(?<!\\),-这将匹配前面没有反斜杠的逗号。

 类似资料:
  • 我想用Apache Spark读入具有以下结构的文件。 csv太大了,不能使用熊猫,因为读取这个文件需要很长时间。有什么方法类似于 多谢!

  • 我有一个源代码,它读取文本文件并存储到一个元组类型的向量中: 包含以下数据: 因此数据由空格+垂直线+空格(多重分隔符)分隔。 如何更改源代码以处理多个分隔符? 注意:如果数据仅用空格隔开,则程序可以工作。

  • 问题内容: 我有一个CSV文件,其格式如下: “ FieldName1”,“ FieldName2”,“ FieldName3”,“ FieldName4” “ 04/13/2010 14:45:07.008”,“ 7.59484916392”,“ 10”,“ 6.552373” “ 04/13/2010 14:45:22.010 ”,“ 6.55478493312”,“ 9”,“ 3.53785

  • 大家好,提前致谢! 我正在处理一个处理utf-8字符串并替换特定字符的Python脚本。因此,我使用,同时通过一个定义unicode字符及其所需替换的列表进行循环,如下所示。 到目前为止,一切都很好。但现在考虑一个包含要替换的字符的csv文件,如下所示。 由于转义字符的原因,我很不幸地未能将csv数据读入列表。我使用< code>csv模块读取数据,如下所示: 这将导致像< code>('\\U0

  • 我正试图用在中添加自定义分隔符,但没有成功,我已经搜索了很多,并查看了下面提到的答案,但这对我没有帮助 链接1 链接2 链接3 我想在的每个项之间加上黑线,如下所示。 我在每行之间都有水平线,但不知道如何在列之间得到这些线。 chintan Soni的答案工作很好,但它只在一个场景中产生问题,当我有5个视图时,它还显示了其他3个项目的分界线,如下所示:

  • 我有一个相当大的逗号分隔的CSV文件(12GB)。我有4列,其中1列包含带有JSON的嵌套列表。我可以从Excel创建一个连接,它可以正确地读取它(尽管我在那里有一些嵌套列表,这意味着更多的逗号)。然而,当我试图通过spark来实现它时,它在每次出现逗号时都会被切分,这造成了很多混乱。 好的,所以我已经尝试提供一个模式。显然CSV不支持数组类型,所以我不能这么容易地做到这一点。我可以用字符串而不是