Spark - 从csv文件创建数据框并删除文件

时间:2017-03-13 16:06:06

标签: apache-spark spark-dataframe

我正在尝试从本地文件系统读取csv文件,从中创建数据帧,删除文件并返回数据帧。是的,我必须删除它。 由于一切都是懒惰地完成,除了删除之外,应用程序失败了,因为它在代码执行时无法找到文件。

def do_something() : DataFrame {
       val file = File.createTempFile("query2Output", ".csv")
       //some code which writes to the file 

       val df = sqlContext.read
          .format("com.databricks.spark.csv")
          .option("header", "true")
          .option("mode", "DROPMALFORMED")
          .load(file.getPath)

       file.delete
       df
}

1 个答案:

答案 0 :(得分:-1)

您可以在创建DataFrame之后缓存您的DataFrame并运行,即依靠RDD来强制执行读取:

val df = /* reading*/.cache()
df.count()
file.delete()

但是,如果处理失败,那么您将无法重新创建DataFrame