在第一个写入数据帧后,我试图在目录之间执行几个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?
似乎文件系统需要等待,直到第一次重命名完成或类似的操作。
答案 0 :(得分:0)
我相信这与未使用uri以及可能的配置文件初始化文件系统有关。您可能需要提供以下内容
val fs =new NativeAzureFileSystem()
fs.initialize(new URI ("wasbs://<containerName>@<storageAccount>.blob.core.windows.net/"),spark.sparkContext.hadoopConfiguration)