Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在函数中保存pyspark数据帧_Pyspark_Pyspark Dataframes - Fatal编程技术网

在函数中保存pyspark数据帧

在函数中保存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)

我正在尝试将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))

    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”名称保存文件,那么您还需要将名称作为字符串传递给函数。