我将尝试读取使用反斜杠来转义分隔符的CSV文件,而不是使用引号。我尝试了使用带有转义字符的DataFrameReader构造函数以及不使用引号的构造函数,但它们都无法正常工作。似乎“escape”选项只能用于转义引号字符。除了创建自定义输入格式之外,还有其他方法吗?
以下是我现在正在使用的选项:
例如,假设我们有以下示例数据:
架构:名称,城市
那应该返回2条记录:
能够忽略换行符会很好,但必须忽略列分隔符。目前我想通过使用spark.textFile读取行,然后使用CSV库解析每行来解决转义列分隔符的问题。这将解决我的列分隔符问题,但不是行分隔符的问题。
以下是我现在正在使用的选项:
spark.read.options(Map(
"sep" -> ",",
"encoding" -> "utf-8",
"quote" -> "",
"escape" -> "\\",
"mode" -> "PERMISSIVE",
"nullValue" -> ""
例如,假设我们有以下示例数据:
架构:名称,城市
Joe Bloggs,Dublin\,Ireland
Joseph Smith,Salt Lake City\,\
Utah
那应该返回2条记录:
Name | City
-----------------|---------------
Joe Bloggs | Dublin,Ireland
Joseph Smith | Salt Lake City,
Utah
能够忽略换行符会很好,但必须忽略列分隔符。目前我想通过使用spark.textFile读取行,然后使用CSV库解析每行来解决转义列分隔符的问题。这将解决我的列分隔符问题,但不是行分隔符的问题。