如何覆盖spark中的输出目录

 milksoul 发布于 2022-12-10 13:45

我有一个火花流应用程序,它可以生成每分钟的数据集.我需要保存/覆盖已处理数据的结果.

当我试图覆盖数据集org.apache.hadoop.mapred.FileAlreadyExistsException时停止执行.

我设置了Spark属性set("spark.files.overwrite","true"),但没有运气.

如何覆盖或预先删除spark中的文件?

5 个回答
  • 更新:建议使用Dataframes,加上类似的东西... .write.mode(SaveMode.Overwrite) ....

    对于旧版本试试

    yourSparkConf.set("spark.hadoop.validateOutputSpecs", "false")
    val sc = SparkContext(yourSparkConf)
    

    在1.1.0中,您可以使用带有--conf标志的spark-submit脚本设置co​​nf设置.

    警告(旧版本):根据@piggybox,Spark中存在一个错误,它只会覆盖编写文件所需的part-文件,任何其他文件都将被删除.

    2022-12-11 02:05 回答
  • 从pyspark.sql.DataFrame.save文档(当前为1.3.1),您可以指定mode='overwrite'保存DataFrame的时间:

    myDataFrame.save(path='myPath', source='parquet', mode='overwrite')
    

    我已经验证这甚至会删除剩余的分区文件.因此,如果您最初说过10个分区/文件,但随后使用仅具有6个分区的DataFrame覆盖了该文件夹,则生成的文件夹将具有6个分区/文件.

    有关模式选项的更多信息,请参阅Spark SQL文档.

    2022-12-11 02:13 回答
  • 自从df.save(path, source, mode)被弃用以来,(http://spark.apache.org/docs/1.5.0/api/scala/index.html#org.apache.spark.sql.DataFrame)

    使用df.write.format(source).mode("overwrite").save(path)
    df.write是DataFrameWriter的地方

    'source'可以是("com.databricks.spark.avro"|"镶木地板"|"json")

    2022-12-11 02:14 回答
  • df.write.mode('overwrite').parquet("/output/folder/path")如果您想使用python覆盖实木复合地板文件,则可以使用。这是火花1.6.2。API在更高版本中可能会有所不同

    2022-12-11 02:56 回答
  • 该参数的文档说明spark.files.overwrite:"是否覆盖SparkContext.addFile()目标文件存在时添加的文件及其内容与源文件的内容不匹配." 所以它对saveAsTextFiles方法没有影响.

    您可以在保存文件之前执行此操作:

    val hadoopConf = new org.apache.hadoop.conf.Configuration()
    val hdfs = org.apache.hadoop.fs.FileSystem.get(new java.net.URI("hdfs://localhost:9000"), hadoopConf)
    try { hdfs.delete(new org.apache.hadoop.fs.Path(filepath), true) } catch { case _ : Throwable => { } }
    

    Aas在此解释:http: //apache-spark-user-list.1001560.n3.nabble.com/How-can-I-make-Spark-1-0-saveAsTextFile-to-overwrite-existing-file-td6696. HTML

    2022-12-11 03:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有