scala - Spark/Scala 拆分

标签 scala hadoop mapreduce apache-spark rdd

我有这个代码:

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获取更多信息。

关于scala - Spark/Scala 拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29448343/

相关文章:

scala - Scalamock无法区分 future

scala - `forSome { val ` 的样本?

sql-server - 我可以使用 Hadoop 加速慢速 SQL 存储过程吗?

hadoop - Pig Latin 像这样获取 SUM() 函数的输出?

join - 如何使用 map-reduce 进行查找(或连接)?

scala - 使用spark-csv写入单个CSV文件

scala - sbt 在动态任务中设置 java 选项

Hadoop reducer 字符串操作不起作用

hadoop - hadoop mapreduce中的单独输出文件

java - 使用 MapReduce 查找数字的平均值