代码之家  ›  专栏  ›  技术社区  ›  1pluszara

Spark:加载/分析分隔的空格加引号字符串

  •  0
  • 1pluszara  · 技术社区  · 8 年前

    我有如下记录。

    空格分隔/分隔:

    2015-07-22 5555 9999 "abc bbc 777" "FFF/5.0 (NTFS NT 6.1)"
    2015-07-16 1111 7777 "7873 b34 bt57" "77/99 (TT; 420; ty:39.0) aa/11.0"
    

    我想知道,如果字段4和字段5被双引号引用,是否有任何直接的方法来拆分/分隔字段4和字段5 使用sc.textfile和spark。阅读format()?

    预期产出:

        -------------------------------------------------------------------------------------------------
        Date       |Value1    |Value2     |Value3                     |Value3                           |
        -------------------------------------------------------------------------------------------------
        2015-07-22 |5555      |9999       |abc bbc 777                |FFF/5.0 (NTFS NT 6.1)
        2015-07-16 |1111      |7777       |7873 b34 bt57              |77/99 (TT; 420; ty:39.0) aa/11.0 |
        -------------------------------------------------------------------------------------------------
    

    如果已经有类似的解决方案,请指出这一点。任何帮助都将不胜感激!!

    1 回复  |  直到 8 年前
        1
  •  2
  •   user9790895 user9790895    8 年前

    标准csv阅读器可以很好地读取此格式

    scala> spark.read.option("delimiter", " ").csv(pathToFile).show
    +----------+----+----+-------------+--------------------+
    |       _c0| _c1| _c2|          _c3|                 _c4|
    +----------+----+----+-------------+--------------------+
    |2015-07-22|5555|9999|  abc bbc 777|FFF/5.0 (NTFS NT ...|
    |2015-07-16|1111|7777|7873 b34 bt57|77/99 (TT; 420; t...|
    +----------+----+----+-------------+--------------------+
    
    推荐文章