Вызов метода модуля с использованием строковой переменной модуля в pyspark - PullRequest
0 голосов
/ 17 марта 2020

У меня ниже несколько модулей A.py и B.py, C .py et c. Мы вызываем метод run_app модуля B, C из A:

Файл A.py выглядит следующим образом. Мы передаем appName в качестве аргумента командной строки A:

import B

Import sys

from pyspark.conf import SparkConf

appName = sys.argv[1].upper()

def main(appName)
    print("Starting"+appName+" processing for ")
    **appName.run_app**

if __name__ == '__main__':
    print("Executing Main "+appName)
    main(appName)

Файл B.Py выглядит следующим образом:

import A.py

from pyspark.sql.functions import *

def run_app:

    -----some code-----

    -----code-------

Теперь на основе переданного appName Для модуля A.py в качестве аргумента командной строки нам нужно вызвать B.run_app или c.appName.

Но при использовании оператора appName.run_app выдает ошибку

AttributeError: 'str' object has no attribute 'run_app'

Как мы можем преобразовать строковую переменную appName в тип имени модуля и вызвать модуль динамически (B.run_app или C .run_app) et c .....

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