2016-03-25 6 views
1

Spark 1.4.0をHadoop 2.4.0で使用し、入力文字列の位置がx + 1の位置にあるaddFileメソッドを呼び出そうとします。私は位置xでエラーになります。私が間違っていることに関する提案はありますか?パスに空白があると、JavaSparkContextのaddFileメソッドを使用できない

Java exception occurred: 
java.net.URISyntaxException: Illegal character in path at index x: /some/path/where/position x+1 is a space character 
    at java.net.URI$Parser.fail(Unknown Source) 
    at java.net.URI$Parser.checkChars(Unknown Source) 
    at java.net.URI$Parser.parseHierarchical(Unknown Source) 
    at java.net.URI$Parser.parse(Unknown Source) 
    at java.net.URI.<init>(Unknown Source) 
    at org.apache.spark.SparkContext.addFile(SparkContext.scala:1316) 
    at org.apache.spark.SparkContext.addFile(SparkContext.scala:1303) 
    at org.apache.spark.api.java.JavaSparkContext.addFile(JavaSparkContext.scala:671) 

編集:コードスニペットと

SparkConf sconf= new SparkConf(); 
    sconf.setMaster(somename); 
    sconf.setAppName(someappname); 

    JavaSparkContext jsconf= new JavaSparkContext(sconf); 
    jsconf.addFile(dataFile); // dataFile is a String object with contents "/some/path/where/position x+1 is a space character" 

ADDFILEリファレンスを参照:https://spark.apache.org/docs/1.4.0/api/java/org/apache/spark/api/java/JavaSparkContext.html#addFile(java.lang.String)

+0

あなたが問題を引き起こしたコードのスニペットを置くことができますか? – user1314742

+0

URIなので...スペースの代わりに%20を追加して動作するかどうか確認できますか? –

+0

皆さん、お返事ありがとうございます。私は%20を試しても動作しません: "Added File .. does not exist"を取得します。 %が25のように置換されたようですので、文字列のスペースは%2520として読み込まれます。 – Harry

答えて

0

は、使用してみてください:

jsconf.addFile(java.net.URLEncoder.encode(dataFile)); 
+0

返事をありがとう。私はあなたが 'java.net.URLEncoder.encode'メソッドを使うことを意味していると思うし、" Added File ... does not exist "というエラーが出ます。 – Harry

関連する問題