Как мне реализовать метод power iteration в pyspark?

#python #pyspark #random-walk

#python #pyspark #случайное блуждание

Вопрос:

Я хочу реализовать уравнение, аналогичное уравнению в алгоритме ранжирования страницы, используя pyspark.

Традиционно это просто реализовать, но когда я приступаю к проектированию реализации в pyspark, я застрял.

Допустим, у нас есть Matrix W размерность (n*n) и вектор x , который изначально инициализируется как, (1/n,...,1/n) где n — номер строки в W .

Предположим, W задается как фрейм данных pyspark, например:

 src dst weight
a    b    0.5
a    c    0.2
etc
  

где каждая строка эквивалентна записи в W . Например, в строке a и столбце b у нас есть значение 0.5 .
Я хочу реализовать уравнение:

 x1 = Px
x = x1
  

Затем повторите два вышеуказанных действия m раз, где m указано в качестве входных данных.

Любой намек на то, как реализовать вышеупомянутое действие, будет высоко оценен.

Комментарии:

1. @jgp пожалуйста, ваша помощь 🙂

2. Матрица и фрейм данных — это не одно и то же. Порядок строк важен в матрицах, но не во фреймах данных. Dataframe может хранить матрицы (например, по одной на строку), и затем вы можете работать с каждой матрицей, но вы не можете рассматривать dataframe как матрицу.

3. Spark (и pyspark) — это инструмент потоковой обработки. Вы пытаетесь запустить на нем алгоритм обработки матрицы. Возможно, это не лучший инструмент для работы. Попробуйте переформулировать свой алгоритм так, чтобы он работал с потоком данных фиксированной ширины (и, вероятно, меньшим, чем ваш прогнозируемый n ), в идеале допуская параллельную обработку частей потока. Если это сложно сделать, скорее всего, spark не является хорошим выбором.