问题的背景:我想在每次跑集群的时候,先删除指定路径下之前hdfs跑的数据文件,但是spark又没有提供这样一个可以调用函数。
解决办法:你可以通过调用subprocess.call 执行任意的Linux Shell命令 或者 sh library下面这个方法已经解决我的需求。
import subprocess
some_path = ...
subprocess.call(["hadoop", "fs", "-rm", "-f", some_path])
如果你用的是 Python 2.x ,你可以尝试 spotify/snakebite
: (下面一个方法我还没有测试成功)
from snakebite.client import Client
host = ...
port = ...
client = Client(host, port)
client.delete(some_path, recurse=True)