У меня есть два документа (1.tmt и 2.tmt), которые я собрал как RDD.
1.tmt содержит следующее:
1 Name name name name
2 hol olallall olelpqwl
3 Nema Nam name
4 alasdflasdfNamelasdf
5 asdoew Name pawolfe Build
6 Build asldpf Build Name
2.tmt содержитследующее:
11 namenameNamenameNamename
12 osaoOOOPsdaflwfeöäöäewÄÄ#
13 otzopafjfNampeüäMNameöääÄ äaää NasöNameöäöl
14 ppafsasdnameas
15 BuildbuildBuild
16 Name Build
И у меня есть .txt с терминами, которые я хочу найти (в данном случае «Имя» и «Сборка»), по одной строке для каждого термина.
Я хотел бы получить строки, которые содержат термины, существующие в searchTerms.txt.У меня есть следующий код:
from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
sc = SparkContext(conf=SparkConf())
files = sc.textFile("./data/ethernet")
words = []
with open('searchTerms.txt', 'r') as file:
words = file.read().splitlines()
for i in range(0, len(words)):
changes.append(files.filter(lambda line: words[i] in line).collect())
Это работает, но я бы хотел, чтобы поиск по всем терминам в документах осуществлялся напрямую с pyspark.Это возможно?Спасибо.
РЕДАКТИРОВАТЬ: Я попробовал некоторые двойной лямбда, но я не мог заставить его работать.Может быть, решение что-то вроде этого.