1
私はSparkフレームワークを使用してHadoopで画像を検出するためにOpenCVライブラリを使用しています。 ローカルファイルシステムにHaarファイルが存在するローカルモードでsparkプログラムを実行できます。 しかし、Haarファイルを分散モードで読み込むとnullポインタエラーが発生します。すべてのクラスタノードにhaarファイルをコピーして、コードに絶対パスを指定しましたが、hadoopで配信モードでhaarカスケードを読み取る
String fileloc ="/home/centos/haarcascade_frontalface_alt.xml"
CascadeClassifier faceDetector = new CascadeClassifier(fileloc);
Error:
Caused by: java.lang.NullPointerException
at javax.xml.bind.DatatypeConverterImpl.guessLength(DatatypeConverterImpl.java:658)
at javax.xml.bind.DatatypeConverterImpl._parseBase64Binary(DatatypeConverterImpl.java:696)
at javax.xml.bind.DatatypeConverterImpl.parseBase64Binary(DatatypeConverterImpl.java:438)
at javax.xml.bind.DatatypeConverter.parseBase64Binary(DatatypeConverter.java:342)
at com.lb.customlogic.impl.CustomLogicImpl.process(CustomLogicImpl.java:82)
... 20 more
私は接頭辞の拡張子のファイルを試してみました://、ファイル:/およびファイル:///しかしそれらは私のために働いていません。 プログラムの実行中にファイルを読み込むために、プレフィックスに何か追加する必要がありますか? OpencvはHadoopをサポートしていないので、私はhaarファイルのHDFS共有ロケーションパスを提供できないと思います。
私はspark-submitで--filesを使用してエグゼキュータでhaarファイルを読むことはできますか?私は--filesオプションの理論的な定義をチェックしましたが、その実装についてはわかりません – Saurabh