Spark / Scala 拆分

Spark / Scala Split

我有这个代码:

rdd.map(_.split("-")).filter(row => { ... })

当我 row.length 在:

  1. This-is-a-test----on-split--

  2. 这是一个测试------

输出分别是9和4。如果它为空,则不计算尾随分隔字符。如果我希望两个输出均为 10,这里的解决方法是什么?

您可以通过将 -1 作为限制参数传递给 split 来完成您想要的操作,如下所示:

rdd.map(_.split("-", -1)).filter(row => { ... })

顺便说一句,预期结果是 11,而不是 10(因为如果您想保留空标记并且您的字符串以定界符结尾,那么它会被解释为好像在该定界符之后有一个空标记)。您可以查看this了解更多信息。