У меня есть функция python, которая принимает данные, обрабатывает данные и возвращает значение.
Другая функция python, которая принимает кортеж данных и передаваемый фрейм данных, обрабатывает данные и сохраняет их на диске.
За исключением карты / распараллеливания, весь другой код использует pandas
Так я изначально написал код
Class X:
Def DoSomething(tup):
Process Data &
Return X
Def DoAnotherThing(tup):
Process Data and Save
Def main():
Create tupList ( created a List of tuples)
rddData = spCon.parallelize(tupList).map(lambda p: self. DoSomething (p))
t = rddData.collect()
if __name__ == "__main__":
main(args)
Приведенный выше код не работает, если Я вызываю основной, как указано выше. Функция DoSomething вернет все None
Если я изменю код для реализации непосредственно в main
Def DoSomething(tup):
Process Data &
Return X
Def DoAnotherThing(tup):
Process Data and Save
if __name__ == "__main__":
Create tupList ( created a List of tuples)
rddData = spCon.parallelize(tupList).map(lambda p: DoSomething (p))
t = rddData.collect()
Однако приведенный выше код возвращает соответствующие данные.
Может кто-нибудь, пожалуйста, помогите мне понять, почему я вижу такое поведение.
Причина, по которой я пытаюсь создать экземпляр класса и вызывать main, заключается в том, что я пытаюсь передать аргументы в сценарий python, но я не уверен, что смогу сделать это без вызова main () функция категорически.