Как рассчитать вероятности перехода в pyspark без петель - PullRequest
0 голосов
/ 02 июля 2019

У меня есть набор данных из миллиона записей, и я хотел бы реализовать модель цепочки Маркова, используя эти данные.

Моя таблица искр выглядит следующим образом:

DF = spark.sparkContext.parallelize([ 
[('row1'),'NA', 'c1','c1', 'c1'],
[('row2'),'NA','NA','c1', 'c1'],
[('row3'),'c3','c2','c4', 'c4'],
[('row4'),'c4','c2','c1', 'c1'],
[('row5'),'c5','c3','c1', 'c1'],
[('row6'),'c3','c3','c1', 'c1'],
[('row7'),'c2','c3','c3', 'c3'],
[('row8'),'c1','c1','NA', 'c1']
]).toDF(["row", "year1",'year2',"year3","year4"])
DF.show()

Я хочу рассчитать матрицу перехода по этим данным, и вот некоторые примечания:

  1. есть ещечем 300 штатов (от c1 до c300)
  2. В зависимости от даты начала контракта, штаты являются NA для некоторых клиентов.

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

Как лучше всего получить матрицу переходов, избегая при этом цикловв UDFs?

...