Задание чтения Spark из объекта gcs зависло
Я пытаюсь локально прочитать объект с помощью искровой работы. Я ранее создавал с помощью другого задания Spark локально. При просмотре журналов я не вижу ничего странного, а в пользовательском интерфейсе искры задание просто зависает
Прежде чем начать чтение, я обновляю конфигурацию Spark следующим образом:
val hc = spark.sparkContext.hadoopConfiguration
hc.set("fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem")
hc.set("fs.AbstractFileSystem.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS")
hc.set("fs.gs.project.id", credential.projectId)
hc.set("fs.gs.auth.service.account.enable", "true")
hc.set("fs.gs.auth.service.account.email", credential.email)
hc.set("fs.gs.auth.service.account.private.key.id", credential.keyId)
hc.set("fs.gs.auth.service.account.private.key", credential.key)
Тогда я просто читал вот так
val path = "gs://mybucket/data.csv"
val options = Map("credentials" -> credential.base64ServiceAccount, "parentProject" -> credential.projectId)
spark.read.format("csv")
.options(options)
.load(path)
Моя учетная запись службы имеет эти разрешения, я буквально добавил все разрешения, которые смог найти для хранилища объектов.
Storage Admin
Storage Object Admin
Storage Object Creator
Storage Object Viewer
Так я ранее писал объект
val path = "gs://mybucket/data.csv"
val options = Map("credentials" -> credential.base64ServiceAccount, "parentProject" -> credential.projectId, "header" -> "true")
var writer = df.write.format("csv").options(options)
writer.save(path)
Есть идеи, почему запись будет успешной, но чтение застряло вот так?
1 ответ
Я использовал версию зависимостей, которая не была последней. После того, как я обновил зависимости коннектора Google до последней версии (декабрь 2021 г.), у меня заработало чтение и запись из хранилища Google.