问题
我有一个pyspark作业文件,其中从parquet文件中读取某些数据帧,并应用一些过滤的数据帧。这些操作很常见,我希望它们只做一次。但是我不知道如何在函数中传递这个巨大的数据帧,或者如何将它正确地存储为全局变量。你知道吗
我试过的:
我有三个选择。但不确定它们是否有效
gives reference errors
)。你知道吗Persist/Cache
数据帧直到这些步骤代码:
def function1():
df_in_concern = sqlContext.read.parquet(...)
df_in_concern = df_in_concern.filter(...)
df_in_concern = df_in_concern.filter(...)
def function2():
df_in_concern = sqlContext.read.parquet(...)
df_in_concern = df_in_concern.filter(...)
df_in_concern = df_in_concern.filter(...)
def main():
function1()
function2()
if __name__ == "__main__":
main()
因此,如果有某种方法来共同访问df_in_concern
,它将避免重连接和在不同函数中反复读取
spark_dataframe.createOrReplaceTempView("tmp_table_name")
可能是您的最佳选择,请按以下方式使用:这个输出
相关问题 更多 >
编程相关推荐