Ich habe eine Eingabedatei, die benutzerdefiniert ist und an newAPIHadoopFile übergeben wird, um sie als RDD [String] zu konvertieren. Die Datei befindet sich unter dem Projektressourcenverzeichnis. Der folgende Code funktioniert gut, wenn er von der Eclipse-IDE ausgeführt wird. JedochEingabedatei von jar lesen, während die Anwendung von spark-submit ausgeführt wird
val path = this.getClass()
.getClassLoader()
.getResource(fileName)
.toURI().toString()
val conf = new org.apache.hadoop.conf.Configuration()
conf.set("textinputformat.record.delimiter", recordDelimiter)
return sc.newAPIHadoopFile(
path,
classOf[org.apache.hadoop.mapreduce.lib.input.TextInputFormat],
classOf[org.apache.hadoop.io.LongWritable],
classOf[org.apache.hadoop.io.Text],
conf)
.map(_._2.toString)
wenn ich es auf laufen Funken einreichen (mit einem uber Glas) wie folgt
spark-submit /Users/anon/Documents/myUber.jar
ich die unten Fehler.
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: jar:file:/Users/anon/Documents/myUber.jar!/myhome-data.json
Irgendwelche Eingaben bitte?
Ich habe dies versucht, aber die sc.newAPIHadoopFile erfordert einen Pfad und nicht eingegebene Stream – user1384205
Antwort aktualisiert ... lass mich wissen, wie es funktioniert. –