Scala 如何展开将CSV文件转换为以空格分隔的文件?标量火花

Scala 如何展开将CSV文件转换为以空格分隔的文件?标量火花,scala,apache-spark-sql,Scala,Apache Spark Sql,我有一个CSV文件。 这是我的意见: ,"",3,"a_b","cde f\gh","i j","k,""l" 现在,我想将CSV文件转换为以空格分隔的文件。我该怎么办 这是规范: 被识别为逗号分隔的数据包括 字符串0(不包含在双引号中)和“字符串1”(包含在双引号中) 空字符串0转换为0,空字符串1转换为 已转换为“\uquot。 (-z选项在string0中更改0, -n选项更改\u字符串1) 字符串1中的转义双引号转换为单引号。 不能在字符串0中使用双引号 任何字符串中的半宽度空格都将

我有一个
CSV
文件。 这是我的意见:

,"",3,"a_b","cde 
f\gh","i j","k,""l"
现在,我想将
CSV
文件转换为以空格分隔的文件。我该怎么办

这是规范:

  • 被识别为逗号分隔的数据包括 字符串0(不包含在双引号中)和“字符串1”(包含在双引号中)
  • 空字符串0转换为0,空字符串1转换为 已转换为
    “\uquot
    。 (
    -z
    选项在string0中更改
    0
    -n
    选项更改
    \u
    字符串1)
  • 字符串1中的转义双引号转换为单引号。 不能在字符串0中使用双引号
  • 任何字符串中的半宽度空格都将转换为
    “\uu”
    -s
    选项更改
  • -e
    选项位于
    “quot
    (或
    -s
    选项指定的字符)之前,并且
    “\”
    作者
    “\”
  • -q
    选项删除前面的
    “\”
    表单
    “\”
    “\\”
  • 行尾的
    \r\n
    自动转换为
    \n
  • 字符串1中的任何
    \n
    都将转换为
    “\n”
  • 最后一行不需要换行符(
    \n
  • 我希望得到如下所示的预期输出结果。请帮帮我

    0 _ 3 a\_b cde\nf\\gh i_j k,"l
    
    您可以使用itto csv来标记csv

    implicit val csvFormat: com.github.gekomad.ittocsv.parser.IttoCSVFormat = com.github.gekomad.ittocsv.parser.IttoCSVFormat.default
    import com.github.gekomad.ittocsv.util.StringUtils._
    
    val csvString = "1,foo"
    val stringList = tokenizeCsvLine(csvString) //  Some(List("1", "foo")))
    
    并将您的规范应用于stringList

    stringList.getOrElse(???).map(field => yourSpec(field))