Есть ли в pySpark возможность поиска строки в двух отдельных словах? - PullRequest
0 голосов
/ 17 апреля 2019

Я ищу способ найти в python spark строку с двумя отдельными словами.например: IPhone x или Samsun s10 ...

Я хочу дать текстовый файл и (Iphone x) в качестве составной строки, например, и затем получить результат.

Все, что янайти в интернете всего лишь одно слово

Ответы [ 3 ]

0 голосов
/ 17 апреля 2019

Вы можете попробовать написать свой собственный UDF, объединенный с wordsegmente , чтобы сегментировать ваши слова, и вы можете добавить новое слово в словарь, чтобы помочь библиотеке сегментировать новые слова, такие как "Iphone x "

Например:

>>> from wordsegment import clean
>>> clean('She said, "Python rocks!"')
'shesaidpythonrocks'
>>> segment('She said, "Python rocks!"')
['she', 'said', 'python', 'rocks']

Если вы не хотите использовать библиотеку, вы также можете увидеть Сегментация слов с помощью динамического программирования

0 голосов
/ 17 апреля 2019

Это ответ:

# give a file
rdd = sc.textFile("/root/PycharmProjects/Spark/file") 

# give a composite string
string_ = "Iphone x" 

# filer by line containing the string
new_rdd = rdd.filter(lambda line: string_ in line) 

# collect these lines
rt = str(new_rdd.collect()) 

# apply regex to find all words and count 
count = re.findall(string_, rt) them
0 голосов
/ 17 апреля 2019

IUUC:

В spark 2.0, и если вы были Gunna, прочитайте его из файла, например, файл .csv:

df = spark.read.format("csv").option("header", "true").load("pathtoyourcsvfile.csv")

, то вы можете отфильтровать его с помощью регулярных выражений, например так:

pattern = "\s+(word1|word2)\s+"
filtered = df.filter(df['<thedesiredcolumnhere>'].rlike(pattern))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...