我已经编写了一个spark作业,它运行在从blob存储读取数据的azure databricks上。这很好,但我现在需要检查我的数据集。调用setcheckpointdir()时作业失败。异常似乎表明spark无法连接到存储容器“data”。有趣的是,如果我注解掉setcheckpointdir()调用,那么作业运行正常。
我应该设置不同的检查点目录吗?我验证了checkpoint文件夹存在于存储器中,并且与它所读取的“输入数据”处于同一级别。
我的集群运行:7.5ml(包括apachespark3.0.1、scala 2.12)
spark = SparkSession.builder().master("local").getOrCreate();
spark.conf().set("fs.azure.sas.data.myblob.blob.core.windows.net",
"?st=2020-12-07T20%3A21%3A31Z&se=2021-12-08T20%3A21%3A00Z&sp=rwdl&sv=2018-03-28&sr=c&sig={sig}");
String workspaceRoot = "wasbs://data@myblob.blob.core.windows.net/";
spark.sparkContext().setCheckpointDir( workspaceRoot + "checkpoint" ); //works if commented
spark
.read()
.csv(workspaceRoot + "input-data")
.show();
例外情况:
21/02/09 18:51:24用户代码中未捕获的可抛出错误:shaded.databricks.org.apache.hadoop.fs.azure.azureexception:shaded.databricks.org.apache.hadoop.fs.azure.azureexception:未找到帐户myblob.blob.core.windows.net中的容器数据,我们无法使用匿名凭据创建它,在配置中找不到他们的凭据。在shaded.databricks.org.apache.hadoop.fs.azure.azurenativefilesystemstore.createazurestoragesession(azurenativefilesystemstore)。java:1037)在shaded.databricks.org.apache.hadoop.fs.azure.azurenativefilesystemstore.initialize(azurenativefilesystemstore。java:488)在shaded.databricks.org.apache.hadoop.fs.azure.nativeazurefilesystem.initialize(nativeazurefilesystem。java:1352)在org.apache.hadoop.fs.filesystem.createfilesystem(filesystem。java:2669)在org.apache.hadoop.fs.filesystem.get(filesystem。java:370)在org.apache.hadoop.fs.path.getfilesystem(path。java:295)在org.apache.spark.sparkcontext.$anonfun$setcheckpointdir$2(sparkcontext。scala:2622)在scala.option.map(option。scala:230)在org.apache.spark.sparkcontext.setcheckpointdir(sparkcontext。scala:2620)
暂无答案!
目前还没有任何答案,快来回答吧!