Scala 将RDD保存为文本文件会导致FileAlreadyExists异常。如何在每次程序加载时创建新文件并使用FileUtils删除旧文件
代码: 第一次程序运行良好。再次运行时,它会引发文件AlreadyExists的异常。Scala 将RDD保存为文本文件会导致FileAlreadyExists异常。如何在每次程序加载时创建新文件并使用FileUtils删除旧文件,scala,apache-spark,fileutils,Scala,Apache Spark,Fileutils,代码: 第一次程序运行良好。再次运行时,它会引发文件AlreadyExists的异常。 我想使用FileUtilsjava功能解决这个问题,并将rdd保存为文本文件。为什么不使用数据帧?将RDD[ListBuffer[String]放入RDD[Row]-类似于- val badData:RDD[ListBuffer[String]] = rdd.filter(line => line(1).equals("XX") || line(5).equals("XX")) badData.coal
我想使用
FileUtils
java功能解决这个问题,并将rdd保存为文本文件。为什么不使用数据帧?将RDD[ListBuffer[String]
放入RDD[Row]
-类似于-
val badData:RDD[ListBuffer[String]] = rdd.filter(line => line(1).equals("XX") || line(5).equals("XX"))
badData.coalesce(1).saveAsTextFile(propForFile.getString("badDataFilePath"))
为什么不使用数据帧?将
RDD[ListBuffer[String]
放入RDD[Row]
-类似于-
val badData:RDD[ListBuffer[String]] = rdd.filter(line => line(1).equals("XX") || line(5).equals("XX"))
badData.coalesce(1).saveAsTextFile(propForFile.getString("badDataFilePath"))
将文件写入指定路径之前,请删除已存在的路径
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.types.{DoubleType, StringType, StructField, StructType}
val badData:RDD[ListBuffer[String]] = rdd.map(line =>
Row(line(0), line(1)... line(n))
.filter(row => filter stuff)
badData.toDF().write.mode(SaveMode.Overwrite)
然后执行通常的写入过程。希望这能解决问题。在将文件写入指定路径之前,请删除已存在的路径
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.types.{DoubleType, StringType, StructField, StructType}
val badData:RDD[ListBuffer[String]] = rdd.map(line =>
Row(line(0), line(1)... line(n))
.filter(row => filter stuff)
badData.toDF().write.mode(SaveMode.Overwrite)
val fs = FileSystem.get(sc.hadoopConfiguration)
fs.delete(new Path(bad/data/file/path), true)
然后执行通常的写入过程。希望这可以解决问题
val fs = FileSystem.get(sc.hadoopConfiguration)
fs.delete(new Path(bad/data/file/path), true)
将文件名作为字符串传递给方法,如果存在一个或多个目录或文件,它将删除。在将其写入输出路径之前,请使用这段代码
将文件名作为字符串传递给方法,如果存在目录或文件,它将删除。在将其写入输出路径之前使用这段代码。除此之外,这家伙可能以您喜欢的方式使用FileUtils库。除此之外,这家伙可能以您喜欢的方式使用FileUtils库,而这可能会回答问题thors的问题,它缺少一些解释性的词语和指向文档的链接。如果没有一些短语,原始代码片段不会很有帮助。您也可能会发现它非常有帮助。请编辑您的答案。虽然这可能回答了作者的问题,但它缺少一些解释性词语和指向文档的链接。原始代码片段对如果没有一些相关的短语,你可能也会觉得很有帮助。请编辑你的答案。