J'ai essayé de résoudre ce problème depuis longtemps maintenant ... je ne sais pas pourquoi j'obtiens ça? Pour info, je cours Spark sur un cluster sur AWS EMR Cluster. J'ai débogué et clairement voir le chemin de destination fourni ... quelque chose comme s3://my-bucket-name/
. Le travail d'étincelle crée des fichiers orc et les écrit après avoir créé une partition comme ceci: date=2017-06-10
. Des idées?AWS EMR Spark: Erreur lors de l'écriture sur S3 - IllegalArgumentException - Impossible de créer un chemin à partir d'une chaîne vide
17/07/08 22:48:31 ERROR ApplicationMaster: User class threw exception: java.lang.IllegalArgumentException: Can not create a Path from an empty string
java.lang.IllegalArgumentException: Can not create a Path from an empty string
at org.apache.hadoop.fs.Path.checkPathArg(Path.java:126)
at org.apache.hadoop.fs.Path.<init>(Path.java:134)
at org.apache.hadoop.fs.Path.<init>(Path.java:93)
at org.apache.hadoop.fs.Path.suffix(Path.java:361)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.deleteMatchingPartitions(InsertIntoHadoopFsRelationCommand.scala:138)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.run(InsertIntoHadoopFsRelationCommand.scala:82)
Code
qui écrit orc:
dataframe.write
.partitionBy(partition)
.option("compression", ZLIB.toString)
.mode(SaveMode.Overwrite)
.orc(destination)
Est-il possible il y a une partition vide? –
Les fichiers orc sont d'abord écrits dans un répertoire '_temporary', puis déplacés dans le répertoire principal. Je ne sais pas comment ce scénario surgirait! – iyerland
Post le code, il pourrait aider à comprendre le problème –