在函数中保存pyspark数据帧
我正在尝试将pyspark数据帧保存到hdfs文件夹中。这段代码在函数外部运行良好,但一旦我尝试将其放入函数中,就会出现错误。可能是我如何引用函数参数的一个例子。谢谢你的帮助在函数中保存pyspark数据帧,pyspark,pyspark-dataframes,Pyspark,Pyspark Dataframes,我正在尝试将pyspark数据帧保存到hdfs文件夹中。这段代码在函数外部运行良好,但一旦我尝试将其放入函数中,就会出现错误。可能是我如何引用函数参数的一个例子。谢谢你的帮助 def save_file(df): start_time = time.time() df.createOrReplaceTempView("df") hc.sql("create table hdfs_folder.{} as select * from {}".format(df,df)
def save_file(df):
start_time = time.time()
df.createOrReplaceTempView("df")
hc.sql("create table hdfs_folder.{} as select * from {}".format(df,df))
print("{} saved in hdfs_folder".format(df))
print("**********************************")
print("--- %s seconds ---" % (time.time() - start_time))
save_file(py_df)
我认为您想要的是使用字符串
df
而不是变量df
,如下所示:
def save_file(df):
start_time = time.time()
df.createOrReplaceTempView("df")
hc.sql("create table hdfs_folder.{} as select * from {}".format('df','df'))
print("{} saved in hdfs_folder".format('df'))
print("**********************************")
print("--- %s seconds ---" % (time.time() - start_time))
save_file(py_df)
已编辑-使用变量名:
def save_file(df, name):
start_time = time.time()
df.createOrReplaceTempView("df")
hc.sql("create table hdfs_folder.{} as select * from {}".format(name,'df'))
print("{} saved in hdfs_folder".format(name))
print("**********************************")
print("--- %s seconds ---" % (time.time() - start_time))
save_file(py_df, 'py_df')
谢谢,但是现在它将保存的文件命名为“df”,我希望将文件命名为函数参数,即“py_-df”,因为我正在调用save_-file(py_-df)@spoonman,如果您想用“variable”名称保存文件,那么您还需要将名称作为字符串传递给函数。