我有一个自定义分隔的输入文件,并传递给 newAPIHadoopFile 以转换为 RDD[String]。该文件位于项目资源目录下。从 Eclipse IDE 运行时,以下代码运行良好。
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)
但是,当我在 spark-submit(使用 uber jar)上运行它时,如下所示
spark-submit /Users/anon/Documents/myUber.jar
我收到以下错误。
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
请问有什么输入吗?