spark避免hadoop fs.rename在写入Dataframe后失败

oalqel3c  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(385)

在第一个目录上写入Dataframe后,我尝试在目录之间执行几个fs.rename操作:

val iPath = new Path(inputPath)
//Let's suppose a df has been written to iPath.
val tmpPath = new Path(oPath.toString + "_temporary")
val oPath = new Path(outputPath)
fs.rename(oPath, tmpPath)
fs.rename(iPath, oPath) //-> here it fails with a nullPointerException
fs.rename(tmpPath, iPath)

为什么它在第二步抛出nullpointerexception?
似乎文件系统需要等到第一次重命名完成或者类似的事情。

kkih6yb8

kkih6yb81#

我相信这与没有用uri或者配置文件初始化文件系统有关。您可能需要提供以下内容

val fs =new NativeAzureFileSystem()
fs.initialize(new URI ("wasbs://<containerName>@<storageAccount>.blob.core.windows.net/"),spark.sparkContext.hadoopConfiguration)

相关问题