Во-первых, вы используете Spark не так, как предполагалось.Ваш DataFrame вообще не разделен.Использование: val values = List("@always_nidhi", "@YouTube", "no", "i", "dnt", "understand" ...)
.Таким образом, каждая масса слов будет назначена отдельному разделу, разным JVM и / или кластерам (в зависимости от общего количества разделов и размера данных).В вашем решении все предложение назначено определенному разделу, и, следовательно, нет ни параллелизма, ни распределения.
Во-вторых, вам не нужно использовать UDF (старайтесь избегать их вообще).Чтобы найти свое регулярное выражение, вы можете просто выполнить: dataFrame.filter(col("words") rlike "@\\w+")
Надеюсь, это поможет: -)