azure - 写入数据帧后,Spark避免hadoop fs.rename失败

标签 azure apache-spark hadoop rename azure-storage-blobs

我尝试在第一个写入数据帧后在目录之间执行几个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?

似乎文件系统需要等待,直到第一次重命名完成为止。

最佳答案

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

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

关于azure - 写入数据帧后,Spark避免hadoop fs.rename失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52315347/

相关文章:

apache-spark - 在分布式 Spark 系统中嵌入句子的最有效方法是什么?

apache-spark - 如何使用 Spark ORC 索引?

hadoop - Hadoop上的ApplicationMaster节点是什么?

hadoop - 在Hadoop中按时间顺序排序

azure - 如何跟踪 Azure 中 VNet 集成的资源类型?

azure - Terraform for Azure 应用服务计划中的数据与资源

azure - 使用 Azure Web 作业配置 Application Insights

azure - 使用 Bicep 将证书从 Azure Keyvault 添加到 Azure 容器环境

apache-spark - Spark,在 EMR 中抛出 SparkException 时的行为不正确

hadoop - Hadoop名称节点未启动CDH4.7