2017-10-16 14 views
0

Lors de l'exécution de mon travail Spark à aws-emr j'eu cette erreur lorsque vous essayez de lire le fichier Avro du seau s3: Il arrive avec les versions:Fail lecture Avro de S3 en utilisant étincelle dans emr

  • emr - 5.5 .0
  • emr - 5.9.0

Voici le code:

val files = 0 until numOfDaysToFetch map { i => 
    s"s3n://bravos/clicks/${fromDate.minusDays(i)}/*" 
} 
spark.read.format("com.databricks.spark.avro").load(files: _*) 

l'ex ception:

java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: 1037330823653531755-2017-10-16T03:06:00.avro 
    at org.apache.hadoop.fs.Path.initialize(Path.java:205) 
    at org.apache.hadoop.fs.Path.<init>(Path.java:171) 
    at org.apache.hadoop.fs.Path.<init>(Path.java:93) 
    at org.apache.hadoop.fs.Globber.glob(Globber.java:241) 
    at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1732) 
    at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1713) 
    at com.amazon.ws.emr.hadoop.fs.EmrFileSystem.globStatus(EmrFileSystem.java:362) 
    at org.apache.spark.deploy.SparkHadoopUtil.globPath(SparkHadoopUtil.scala:237) 
    at org.apache.spark.deploy.SparkHadoopUtil.globPathIfNecessary(SparkHadoopUtil.scala:243) 
    at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$14.apply(DataSource.scala:374) 
    at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$14.apply(DataSource.scala:370) 
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241) 
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241) 
    at scala.collection.immutable.List.foreach(List.scala:381) 
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241) 
    at scala.collection.immutable.List.flatMap(List.scala:344) 
    at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:370) 
    at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152) 

`

+0

S'il vous plaît ajouter votre bloc de code à la question –

+0

S'il vous plaît, @.. ThiagoBaldim, je l'ajoute – LeonB

Répondre

0

Path ne supporte pas côlons. Il interprète 1037330823653531755-2017-10-16T03: comme un schéma d'URI et devient mécontent de tout remplissage "/"..même s'il arrivait jusque-là il échouerait alors" pas de système de fichiers pour le schéma "1037330823653531755-2017-10-16T03 "

Fix: ne pas utiliser ":" dans les noms de fichiers

0

J'ai enlevé le dernier * de/* et cela fonctionne simplement