sc.wholeTextFiles (путь) должен помочь. Он дает rdd (filepath, filecontent).
Пустой класс декоратора был бы похож на это:
class NullDecl (object):
def __init__ (self, func):
self.func = func
for name in set(dir(func)) - set(dir(self)):
setattr(self, name, getattr(func, name))
def __call__ (self, *args):
return self.func (*args)
И затем можно обычно применять его:
@NullDecl
def myFunc (x,y,z):
return (x+y)/z
модуль декоратора помогает Вам пишущий сохраняющим подпись декораторам.
И PythonDecoratorLibrary мог бы предоставить полезные примеры декораторам.
Для создания декоратора, который обертывает функции в вопрос, которые делают их неотличимыми от исходной функции используйте functools.wraps
.
Пример:
def mydecorator(func):
@functools.wraps(func):
def _mydecorator(*args, **kwargs):
do_something()
try:
return func(*args, **kwargs)
finally:
clean_up()
return _mydecorator
# ... and with parameters
def mydecorator(param1, param2):
def _mydecorator(func):
@functools.wraps(func)
def __mydecorator(*args, **kwargs):
do_something(param1, param2)
try:
return func(*args, **kwargs)
finally:
clean_up()
return __mydecorator
return _mydecorator
(мое персональное предпочтение состоит в том, чтобы создать декораторов, использующих функции, не классы)
упорядочивание декораторов следующие:
@d1
@d2
def func():
pass
# is equivalent to
def func():
pass
func = d1(d2(func))