2017-10-16 111 views
0

當AWS-EMR執行我的星火工作我試圖讀取從S3存儲Avro的文件時,這個錯誤從S3閱讀的Avro: 這一點與版本:失敗使用Spark在EMR

  • EMR - 5.5 0.0
  • EMR - 5.9.0

這是代碼:

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

這位前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

請你的代碼塊添加到這個問題 –

+0

請@:「

修復:不使用’。 ThiagoBaldim,我補充一下 – LeonB

回答

0

Path不支持冒號。它解釋了1037330823653531755-2017-10-16T03:作爲URI模式,然後對任何正在填充的「/」感到不滿。即使它到達那麼遠,它也會失敗「沒有用於模式的文件系統」1037330823653531755-2017-10-16T03在文件名‘

0

我刪除了最後從*/*,它只是工作