【发布时间】:2018-12-30 18:13:50
【问题描述】:
我已经在我的 Windows 系统上安装了 Zeppelin 和 Docker,现在我正在尝试使用本地文件运行 Zeppelin Tutorial 中定义的代码,但它抛出错误 -
java.net.URISyntaxException: Expected scheme-specific part at index 2: C:
at java.net.URI$Parser.fail(URI.java:2848)
at java.net.URI$Parser.failExpecting(URI.java:2854)
at java.net.URI$Parser.parse(URI.java:3057)
at java.net.URI.<init>(URI.java:746)
at org.apache.hadoop.fs.Path.initialize(Path.java:203)
at org.apache.hadoop.fs.Path.<init>(Path.java:172)
at org.apache.hadoop.fs.Path.<init>(Path.java:94)
at org.apache.hadoop.fs.Globber.glob(Globber.java:201)
at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1643)
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:222)
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:270)
at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:194)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:252)
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:250)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.rdd.RDD.partitions(RDD.scala:250)
这是我正在使用的路径-
file:///C:/xampp/htdocs/bank/bank-full.csv
代码-
val bankText = sc.textFile("file:///C:/xampp/htdocs/bank/bank-full.csv")
case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer)
val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map(
s=>Bank(s(0).toInt,
s(1).replaceAll("\"", ""),
s(2).replaceAll("\"", ""),
s(3).replaceAll("\"", ""),
s(5).replaceAll("\"", "").toInt
)
)
bank.toDF().registerTempTable("bank")
%sql select * from bank
请帮帮我。
提前致谢!
【问题讨论】:
-
你能展示一段你的代码吗?因为对我来说它只适用于
new URI(...); -
请再次检查问题。 @AlexOtt
-
Hadoop 确实有点奇怪——看起来它首先转换了 URI,然后将转换后的字符串传递给
java.net.URI构造函数......不幸的是我不知道答案
标签: apache-spark docker apache-zeppelin