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

时间:2019-06-10 10:07:50

标签: scala apache-spark-sql

我有一个 [HttpGet] public JsonResult GetSubCategories(int main) { var i = _jobsservice.GetSubCategories(main); return Json(i, JsonRequestBehavior.AllowGet); } 文件。 这是我的输入内容:

CSV

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

这是规格:

  1. 被识别为逗号分隔的数据包括 字符串0(不包含在双引号中)和“字符串1”(包含在双引号中)。
  2. 空字符串0转换为0,空字符串1转换为 转换为CSV。 ("_"选项更改string0中的-z0选项更改字符串1)中的-n
  3. 字符串1中的转义双引号将转换为单_。 您不能在字符串0中使用双引号。
  4. 任何字符串内的半角空格都将转换为" ({"_"选项更改-s
  5. _选项位于-e(或"_"选项指定的字符)之前,并且 -s的{​​{1}}。
  6. "\"选项消除了前面的"\"形式-q"\"
  7. 行尾的
  8. "\""将自动转换为"\\"
  9. 字符串1中的任何\r\n都将转换为\n
  10. 最后一行不需要换行(\n)。

我想要具有以下期望的输出结果。请帮助我。

"\n"

1 个答案:

答案 0 :(得分:0)

您可以使用itto-csv https://github.com/gekomad/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))