значения кеша pyspark в работнике спарк - PullRequest
0 голосов
/ 07 мая 2019

Я пишу библиотеку Python, которая будет вызываться кодом pyspark.В составе этой библиотеки есть медленная функция.

Я бы хотел кэшировать результаты этой функции, чтобы таблица хранилась в памяти.(По крайней мере у каждого работника).

Например:

def slow_function(x):
   time.sleep(10)
   return x*2


class CacheSlowFunction():

   def __init__(self):
      self.values = {}

   def slow_function(x):
       if x in self.values:
          return self.values[x]
       else:
          res = slow_function(x)
          self.values[x] = res
          return res

def main(x):
   csf = CacheSlowFunction()
   s = 0
   for i in range(x):
     s += csf.slow_function(i)
   return s 

и код вызывается из spark с чем-то вроде:

map(main, [i for i in range(10000)])

Теперь код создасттаблица (self.values) для каждого звонка.Возможно ли, чтобы эта таблица была хотя бы разделена между вычислениями, выполненными на одном и том же работнике?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...