spark/scala拆分

gc0ot86w  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(373)

我有这个密码:

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

当我在上执行row.length时:
这是一个测试-----在分裂--
这是一个测试-----
输出分别为9和4。如果它为空,则不计算尾随的分隔字符。如果我希望两个输出都是10,这里的解决方法是什么?

cbeh67ev

cbeh67ev1#

通过将-1作为limit参数传递给 split 这样地:

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

顺便说一句,预期的结果是11,而不是10(因为如果要保留空标记,并且字符串以分隔符结尾,则会将其解释为在该分隔符之后有一个空标记)。有关更多信息,请参见此。

相关问题