Zeppelin 无法读取本地文件系统的文件路径
Posted
技术标签:
【中文标题】Zeppelin 无法读取本地文件系统的文件路径【英文标题】:Zeppelin cannot read file path of local file System 【发布时间】: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
构造函数......不幸的是我不知道答案
【参考方案1】:
使用文件:///xampp/htdocs/bank/bank-full.csv 并确保您的程序也在 C 驱动程序中。
【讨论】:
我在 Docker 和 Path 中的程序是 -C:\Users\Public\Documents\Hyper-V\Virtual hard disks
,我尝试了你的解决方案,上面写着 org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/xampp/htdocs/bank/bank-full.csv
:( @zjffdu以上是关于Zeppelin 无法读取本地文件系统的文件路径的主要内容,如果未能解决你的问题,请参考以下文章
Mac版保存本地时,wps未授权无法显示系统本地路径下的文件列表?