Я пытаюсь запустить приложение Spark+Scala в Bluemix, используя spark-submit.sh. На данный момент на основе документация и источник code Я придумал следующий фрагмент:
val spark: SparkSession = SparkSession
.builder
.appName("app")
.config("spark.hadoop.fs.cos.softlayer.endpoint",
"s3-api.us-geo.objectstorage.service.networklayer.com")
.config("spark.hadoop.fs.cos.softlayer.access.key",
"auto-generated-apikey-<redacted>")
.config("spark.hadoop.fs.cos.softlayer.secret.key",
"<redacted>")
.getOrCreate()
spark.sparkContext.setLogLevel("TRACE")
spark.sparkContext.textFile("s3d://<bucket>.softlayer/<file>")
который терпит неудачу с
Exception in thread "Driver" java.lang.NullPointerException
at com.ibm.stocator.fs.common.ObjectStoreGlobber.glob(ObjectStoreGlobber.java:179)
at com.ibm.stocator.fs.ObjectStoreFileSystem.globStatus(ObjectStoreFileSystem.java:443)
at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:259)
из-за
DEBUG apache.http.headers: http-outgoing-0 << HTTP/1.1 403 Forbidden
Я считаю, что 403 означает «аутентификация прошла успешно, но авторизация не прошла», но даже если я изменю свои учетные данные на что-то случайное, я все равно получу 403.
Я настроил свою учетную запись службы в качестве читателя для всех ресурсов «облачного хранилища объектов».
Те же учетные данные отлично работают для меня в python.
Что мне не хватает?