I want to move files around in HDFS using the Java APIs. I cannot figure out a way to do this. The FileSystem class only seems to want to allow moving to and from the local file system.. but I want to keep them in HDFS and move them there.
Am I missing something basic? The only way I can figure to do it is to read it from the input stream and write it back out... and then delete the old copy (yuck).
thanks
Use FileSystem.rename():
public abstract boolean rename(Path src, Path dst) throws IOException
Renames Path
src
to Pathdst
. Can take place on local fs or remote DFS.Parameters:
src
- path to be renamed
dst
- new path after rename
Returns:
true
if rename is successful
Throws:
IOException - on failure