Как найти нграммы в идентификаторе электронной почты? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть требование для создания преобразователя пользовательских функций в spark scala.I. Например, у меня есть фрейм данных scala

+--------------------+ .  
|          email_list| .  
+--------------------+ .  
|testmail1115@gmail.com| .  
|mavenmaven@mlail.com| .  
|dnd.7899334622@gmail.com| .  
+--------------------+ .  

Если я использую преобразователь, он преобразует входной массив строк в массивn-grams. like ниже:

+--------------------+--------------------+  
|          email_list|              ngrams| .  
+--------------------+--------------------+   
|testmail1115@gmail.com|[t e, e s, s t, t...|  
|mavenmaven@mlail.com|[m a, a v, v e, e...| .  
|dnd.7899334622@gmail.com|[d n, n d, d...| .  
+--------------------+--------------------+ .  

Как получить отличную ngram, представляющую скорее образец или массив в приведенном ниже коде:

import org.apache.spark.ml.feature.NGram
val emailD1F=emailDF.withColumn("email_split", split(col("email_list"), "@").getItem(0)).withColumn("email_split", split(col("email_split"), "")) .   
val ngram = new NGram().setN(2).setInputCol("col1").setOutputCol("ngrams")

val ngramDataFrame = ngram.transform(emailD1F)
ngramDataFrame.show()
...