2017-07-12 85 views
0

我已存储使用火花外壳的火花数据帧兽人文件如下:星火删除阿帕奇兽人文件

jdbcDF.write.format("orc").partitionBy("ID").save("applicationsPartitioned") 

我发现数据现在住在WINDOWS \ SYSTEM32 \ applicationsPartitioned

我如何正确删除该orc文件? 我可以关闭spark并且自己移除目录,但是有一些关于这个目录存储的元数据吗?

+0

你是否以管理员身份运行'cmd'? – philantrovert

+0

是的,如果我不那么spark-shell给出了很多错误 – user979899

+1

在调用'spark-shell'之前改变目录。它默认为C:\ Windows \ System32 \,不建议从那里写入/删除东西。你永远不知道什么时候会打破某些东西。它毕竟是Windows。 – philantrovert

回答

1

您必须手动完成,但是您可以使用hadoop文件系统来执行此操作。

例如:

import org.apache.hadoop.fs.FileSystem 
import org.apache.hadoop.fs.Path 
val fs = FileSystem.get(spark.sparkContext.hadoopConfiguration) 
fs.delete(new Path(path), recursive) 

这将使它的操作系统和文件系统无关。

+0

我改变了“hadoopfs.delete(新路径(路径),递归)” 到“fs.delete(新路径(路径))”,它工作得很好,谢谢! – user979899

+0

@ user979899感谢您的错字。我在答案中解决了它... –

1

我认为必须手动删除了目录,但如果你想删除的下一个输出的目录,你可以简单的使用方法mode()覆盖现有目录

jdbcDF.write.format("orc") 
.mode(SaveMode.Overwrite) 
.partitionBy("ID") 
.save("applicationsPartitioned") 

希望这有助于!

+0

谢谢,未来可能会使用,但这次我只是想删除它,因为它不在正确的位置。 – user979899

+0

你可以投票,如果这有帮助:) –

相关问题