0
我一直試圖在火花獨立的一個簡單的wordcount應用程序。 我有1個Windows機器和1個Linux機器, Windows運行主機&奴隸 Linux運行從機。火花獨立無hdfs
連接非常簡單。 我儘量避免使用hdfs,但我確實想在集羣上工作。 到目前爲止我的代碼是:
String fileName = "full path at client";
File file = new File(fileName);
Path filePath = new Path(file);
String uri= filePath.toURI().toString();
SparkConf conf = new sparkConf().setAppName("stam").setMaster("spark://192.168.15.17:7077").setJars(new String[] { ..,.. });
sc = new JavaSparkContext(conf);
sc.addFile(uri);
JavaRDD<String> textFile = sc.textFile(SparkFiles.get(getOnlyFileName(fileName))).cache();
這種失敗
輸入路徑不存在:........ 或 java.net.URISyntaxException:絕對相對路徑URI
要看什麼我嘗試,錯誤的是從Linux從
任何想法,如果這可能嗎? 該文件正被複制到所有從屬工作目錄。 請幫忙
你能打印uri的內容嗎?它是以file:///開頭的嗎? – urug
另外,你確定兩臺機器都能夠使用你提供'textFile'的路徑來訪問文件嗎? – climbage
這就是問題所在,我找不到文本文件方法的正確輸入!,我剛剛通過addFile添加了文件,而SparkFiles.get只返回原始驅動程序機器(OS窗口)的路徑。我知道文件已經發送到執行器的workDir中的文件目錄,爲什麼路徑不是相對的?或者爲什麼我不能使用%workFiles%文件名,或者其他什麼。 – minsky