val label = Try("here_a").getOrElse("here_b")
here_a
が見つからない場合、これはhere_b
に戻っていません。 .getOrElse
が機能しないのはなぜですか?スカラーを試してみよう
ありがとう@jwvh。これらの値はファイルのパスになりますので、例外は次のようになりますException in thread "main" java.io.FileNotFoundException:
Andrew James Ramirezのコメントによれば、私はこれを試しましたが問題は解決しません。
Try(throw new Exception("FAIL here_a")).getOrElse("here_b")
Try(throw new Exception("FileNotFoundException here_a")).getOrElse("here_b")
を試してみました。もう少し文脈。文字列は実際にはファイルパスです。多分これが違いを生み出しているのでしょうか?
実際には、json
ファイルが2つの可能な場所のいずれかにあります。したがって、最初の場所を試してみたい場合は、java.io.FileNotFoundException
が返された場合は、2番目の場所に戻ってください。これは私が現在持っているものです。
val input_file = Try(throw new Exception("FAIL location_a/file_a.json")).getOrElse("location_b/file_a.json")
編集 V2
私は、単純な誤りを発見したと言って恥ずかしい思います。私はspark
にこのスカラコードを実行しており、テストの間に再パッケージするのを忘れていました。 sbt package
がすべて必要でした。 :/
どちらの新しい例でも、「here_b」という文字列が返されます。別の結果が得られた場合は、ここで示したコードとは無関係です。 – jwvh