我创建了一个文件来访问所有全局变量。我无法访问 pyspark-sql 查询中定义的 UDF 中的全局变量
Posted
技术标签:
【中文标题】我创建了一个文件来访问所有全局变量。我无法访问 pyspark-sql 查询中定义的 UDF 中的全局变量【英文标题】:I created a file to access all the global variables. I am unable to access global variable in the UDFs defined in pyspark-sql queries 【发布时间】:2020-07-15 20:46:34 【问题描述】:具有已定义全局变量的文件:
#Globals.py--
def init():
global XYZ
XYZ='Some Variable'
print("GLobal Variables initialized Successfully ")
这是试图访问 'XYZ' 全局变量的 udf 函数
import Globals
#udfs.py
def trans_thrp_cd():
try:
global xyz
print(xyz)
except Exception as e:
print("Error in fetching value from the globals "+ str(e))
#main.py
import Globals
spark and other modules import-initialization
register functions as pyspark-hive UDFs
df=hive_context.sql("select trans_thrp_cd from test.people")
df.show()
得到下面提到的错误:
#Error
module 'Globals' has no attribute 'XYZ'
【问题讨论】:
【参考方案1】:在 Globals.py 中:
global XYZ
XYZ = 'Some variable'
在udfs.py中:
import Globals
print(Globals.XYZ)
【讨论】:
感谢您的意见。由于我使用 pyspark-sql 来使用这个 UDF,所以我仍然面临这个问题。以上是关于我创建了一个文件来访问所有全局变量。我无法访问 pyspark-sql 查询中定义的 UDF 中的全局变量的主要内容,如果未能解决你的问题,请参考以下文章