我有这个代码:
rdd.map(_.split("-")).filter(row => { ... })
当我执行 row.length 时:
This-is-a-test----on-split--
这是一个测试--------
输出分别是9和4。如果它为空,则不计算尾随分隔字符。如果我希望两个输出均为 10,这里的解决方法是什么?
最佳答案
您可以通过将 -1 作为限制参数传递给 split
来完成您想要的操作,如下所示:
rdd.map(_.split("-", -1)).filter(row => { ... })
顺便说一句,预期结果是 11,而不是 10(因为如果您想保留空标记并且您的字符串以分隔符结尾,那么它会被解释为好像在该分隔符之后有一个空标记)。可以看到this获取更多信息。
关于scala - Spark/Scala 拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29448343/