【问题标题】:How to use global variable in pyspark function如何在pyspark函数中使用全局变量
【发布时间】:2018-06-23 17:59:40
【问题描述】:

首先我在代码开头有两个变量。

numericColumnNames = []
categoricalColumnsNames = [];

然后在 main 方法中,我为这些值赋值

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)

很遗憾我找不到问题?感谢您的帮助

【问题讨论】:

    标签: python-3.x apache-spark pyspark


    【解决方案1】:

    只需像这样在函数 '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)
    

    参考:

    【讨论】:

      猜你喜欢
      • 2022-01-16
      相关资源
      最近更新 更多