2016-04-20 19 views
0

我正試圖在hdfs目錄下找到文件列表,但是當我嘗試運行下面的代碼時,它將期望文件作爲輸入的代碼。scala中的hdfs文件列表

val TestPath2="hdfs://localhost:8020/user/hdfs/QERESULTS1.csv" 
val hdfs: org.apache.hadoop.fs.FileSystem = org.apache.hadoop.fs.FileSystem.get(sc.hadoopConfiguration) 
     val hadoopPath = new org.apache.hadoop.fs.Path(TestPath1) 
     val recursive = true 
    // val ri = hdfs.listFiles(hadoopPath, recursive)() 
     //println(hdfs.getChildFileSystems) 
     //hdfs.get(sc 

val ri=hdfs.listFiles(hadoopPath, true) 
println(ri) 
+0

什麼是錯誤訊息您收到?你能簡單介紹一下這個問題嗎? – Karthikeyan

+0

錯誤的FS:hdfs:// localhost:8020/user/hdfs/QERESULTS1.csv,預計:file:/// \t at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:642) –

+0

i我試圖使用scala在hdfs目錄中找到文件列表 –

回答

0

您應該將缺省文件系統設置爲HDFS://第一,我好像默認的文件系統是文件://

val conf = sc.hadoopConfiguration 
conf.set("fs.defaultFS", "hdfs://some-path") 

val hdfs: org.apache.hadoop.fs.FileSystem = org.apache.hadoop.fs.FileSystem.get(conf) 

...