2015-04-04 3 views
0

У меня есть этот код:Спарк/Scala Split

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

когда я row.length на:

  1. это-это-тест ---- на split--

  2. Это-это-тест -------

выход 9 и 4 разрешения pectively. Он не учитывает конечные разделительные символы, если он пуст. Какое обходное решение здесь, если я хочу, чтобы оба выхода были равны 10?

ответ

2

Вы можете сделать то, что вы хотите, передавая -1 в качестве предельного параметра split так:

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

Btw, ожидаемый результат 11, а не 10 (так как если вы хотите сохранить пустые маркеры и ваша строка заканчивается разделителем, тогда она интерпретируется так, как будто после этого разделителя есть пустой токен). Вы можете увидеть this для получения дополнительной информации.

Смежные вопросы