1
我有450K的JSON,我想根據一定的規則在hdfs中重命名它們。爲了簡單起見,我只是給它們中的每一個添加後綴.finished
。 一個託管要做到這一點,用下面的代碼:如何更有效地從火花重命名hdfs中的文件?
import org.apache.hadoop.fs._
val hdfs = FileSystem.get(sc.hadoopConfiguration)
val files = hdfs.listStatus(new Path(pathToJson))
val originalPath = files.map(_.getPath())
for(i <- originalPath.indices)
{
hdfs.rename(originalPath(i), originalPath(i).suffix(".finished"))
}
但它需要12分鐘,重命名所有的人。有沒有辦法讓它更快? (也許並行) 我使用spark 1.6.0。
而且你會怎麼做,如果你有兩個數組,例如:'originalPath'和'newPath'?所以我想爲兩個數組應用重命名函數。我嘗試了一些zip和你的解決方案,但它不起作用。 – sanyi14ka
我想出了在這種情況下如何做到這一點,現在只需要大約5分鐘。我認爲不同之處在於'par'功能。 – sanyi14ka