#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 не является хорошим выбором.