Возьмите предложение: «Это искра апача».Я хочу иметь возможность преобразовывать каждое слово в список кортежей, если они находятся на расстоянии k.Пример: k = 2, я должен получить [(apache, this), (apache, is)] для слова apache.Аналогично для is, spark и т. Д.
Сначала я использую zipWithIndex для rdd, а затем в функции преобразования вызываю цикл от 1 до k после текущего слова.Но я не знаю, как получить слово по какому-то индексу, скажем, i-2, где i - это индекс моего текущего слова.
rdd.zipWithIndex().flatMap(lambda xi: func(xi,n))
def func(xi, n):
x,i = xi
l=[]
for j in range(n):
#Create tuple (word at i-j, x) but how