2017-01-17 114 views
0

我在HDFS @/user/Cloudera/Test/中有一些數據。我非常能夠通過運行「hdfs -dfs -cat Test/」來查看記錄。用於HDFS文件系統的網址

現在是同一個文件,我需要它在scala中讀作RDD。 我已經在scala shell中嘗試了以下內容。

VAL文件= sc.textFile( 「HDFS://quickstart.cloudera:8020 /用戶/ Cloudera的/測試」)

然後我已經寫一些過濾器和用於循環讀取詞語的但是,當我最後使用Println時,它說沒有找到文件。

任何人都可以請幫助我知道在這種情況下什麼是HDFS網址。 注:我使用了Cloudera CDH5.0 VM

+0

那麼'/ user/Cloudera/Test /'是一個文本文件?它似乎更像是一個文件夾 –

回答

1

如果您嘗試訪問您的文件中火花工作那麼你可以簡單地使用URL VAL文件= sc.textFile(「/用戶/ Cloudera公司/測試」) 星火會自動檢測到這個文件,你不需要添加localhost作爲前綴,因爲默認情況下火花塞工作從HDFS目錄閱讀。

希望這解決您的查詢。

+0

它沒有工作。我能夠通過執行「hdfs dfs -cat hdfs:/user/cloudera/temp.txt」來查看內容.....但是,[val file = sc.textFile(「hdfs:/ user/Cloudera/temp。 txt「)]引發錯誤路徑不存在。 –

+0

如果您正在Spark或Hadoop中運行您的作業,則不要使用HDfS作爲前綴,它們將自動在HDfS中搜索數據文件,您不需要提及它。只要保持它/user/Cloudera/temp.txt –

+0

如果我使用「/user/Cloudera/temp.txt」我得到這個錯誤 - 輸入路徑不存在:hdfs://quickstart.cloudera:8020/user/Cloudera /temp.txt –

0

而不是使用「quickstart.cloudera」和端口,只使用IP地址:

val file = sc.textFile("hdfs://<ip>/user/Cloudera/Test") 
+0

個人而言,我會阻止IP地址的使用,只是因爲服務器IP地址的變化而主機名往往是靜態的。 – Fredulom

+0

val file = sc.textFile(「hdfs://localhost/user/Cloudera/temp.txt」)拋出錯誤路徑不存在 –

相關問題