0

Salut j'ai un problème de lecture des fichiers de S3 avec DataFrameReader Je suis capable de lire exactement le même fichier quand il est localement mais quand il est stocké sur S3 je ne suis pas capable de le lire , voici un extrait de mon codeLire les fichiers de S3 avec DataFrameReader

private SparkSession getSparkSession() { 
    return sparkSessionService.getTransformedCsvSparkSession(); 
} 

public void processFile(StructType structType, String srcFile, String targetFile) { 
    //"s3n://yourAccessKey:[email protected]/path/ 
    String spark = new String("s3n://TTTTTTTT:[email protected]/bucket-qa1/test/123456785_Ads_mockup_.csv"); 
    Dataset<Row> dfSpark = getSparkSession().read().format("csv").schema(structType).option("header", srcIncludeHeader).load(spark); 
    dfSpark.show(); 

Mais j'eu cette erreur:

java.lang.IllegalArgumentException: Invalid hostname in URI s3n://..... 

J'utilise DataBrics:

Comment "indiquer" à DataFrameReader de lire à partir d'AWS S3?

+1

Y at-il un «/» dans votre aws clé d'accès ou clé secrète? Cela va confondre étincelle. Vous pouvez obtenir la configuration hadoop depuis le contexte de l'étincelle et y définir les clés. Les noms des options exactes dépendent de la version de l'étincelle que vous utilisez. –

+0

non, comment puis-je "séparer" entre le nom de fichier Bucket/chemin/réel? –

+0

Vous divisez correctement le compartiment, le chemin et le nom de fichier. –

Répondre

1

Il ne devrait pas être une barre oblique avant le nom du seau, son OK pour avoir barre sur le chemin du fichier