Voici ma méthode pour lire le fichier de stockage dans le nuage.
public static String getStringObject(String bucketName, String fileName) throws Exception{
BlobId blobId = BlobId.of(bucketName, fileName);
byte[] content = storage.readAllBytes(blobId);
String contentString = new String(content, UTF_8);
return contentString;
}
Lorsque j'appelle cette méthode depuis mon environnement de développement pour lire un fichier depuis le seau, cela fonctionne bien. Mais lorsque j'appelle cette méthode depuis le cluster Dataproc en exécutant un job spark, l'erreur suivante se produit.
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
at com.google.api.gax.retrying.BasicRetryingFuture.<init>(BasicRetryingFuture.java:77)
at com.google.api.gax.retrying.DirectRetryingExecutor.createFuture(DirectRetryingExecutor.java:75)
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:53)
at com.google.cloud.storage.StorageImpl.readAllBytes(StorageImpl.java:460)`
Voici des parties de mon pom.xml maven
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.22.0</version>
</dependency>
Qu'est-ce que je fais de mal ici ?