Как использовать глобальную переменную в функции pyspark - PullRequest
0 голосов
/ 23 июня 2018

Во-первых, у меня есть две переменные в начале кода.

numericColumnNames = []
categoricalColumnsNames = [];

Затем в основном методе я присваиваю значения этим значениям

def main():
  #clickRDD = sc.textFile("s3a://wer-display-ads/day_0_1000.csv"); 
  clickRDD = sc.textFile("data/day_0_1000.csv");
  numericColumnNames , categoricalColumnsNames = getColumnStructure();

Тогда Когда я хочу использовать эти переменные в следующей функции, эти переменные не обновляются и являются пустыми

def dataToVectorForLinear(clickDF):
  print (categoricalColumnsNames) ## why this list is empty 
  clickDF = oneHotEncoding(clickDF,categoricalColumnsNames)

К сожалению, я не могу найти проблему? Спасибо за вашу помощь

1 Ответ

0 голосов
/ 23 июня 2018

Просто повторно инициализируйте их внутри ключевого слова функции global, например:

def main():

    global numericColumnNames
    global categoricalColumnsNames     

    clickRDD = sc.textFile("data/day_0_1000.csv");
    numericColumnNames , categoricalColumnsNames = getColumnStructure();

Аналогично

def dataToVectorForLinear(clickDF):

    global categoricalColumnsNames
    print (categoricalColumnsNames) 
    clickDF = oneHotEncoding(clickDF,categoricalColumnsNames)

Ссылка:

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