删除scala-spark中的空格

时间:2018-06-14 12:44:35

标签: scala apache-spark dataframe rdd

我有像这样的样本文件记录

2018-01-1509.05.540000000000001000000751111EMAIL@AAA.BB.CL

以上记录来自固定长度文件,我想根据长度

进行拆分

当我分裂时,我得到一个如下所示的列表。

ListBuffer(2018-01-15, 09.05.54, 00000000000010000007, 5, 1111, EMAIL@AAA.BB.CL)

到目前为止,一切看起来都很好。但我不确定为什么列表中的每个字段都有额外的空格添加(不是第一个字段)。

示例:我的数据是“09.05.54”,但我在列表中得到“09.05.54”。

我的拆分逻辑如下所示

 // Logic to Split the Line based on the lengths
  def splitLineBasedOnLengths(line: String, lengths: List[String]): ListBuffer[Any] = {
    var splittedLine = line
    var split = new ListBuffer[Any]()
    for (i <- lengths) yield {
      var c = i.toInt
      var fi = splittedLine.take(c)
      split += fi
      splittedLine = splittedLine.drop(c)
    }
    split
  }

上面的代码采用了行和list[String],它们只是长度作为输入,并给出listbuffer[Any],其中的行根据长度分割。

任何人都可以帮助我为什么在分割之后我会在每个领域之前获得额外的空间?

1 个答案:

答案 0 :(得分:0)

数据中没有多余的空格。它只是在打印元素时添加一些元素(使用toString),以便于阅读。

要证明这一点,请尝试以下代码:

split.foreach(s => println(s"\"$s\""))

您将看到以下内容:

"2018-01-15"
"09.05.54"
"00000000000010000007"
"5"
"1111"
"EMAIL@AAA.BB.CL"