2017-03-01 4 views
0

私は糸でpi.pyサンプルを正常に実行することができます:./bin/spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.pySpark公式のPythonマシンで糸の例を学習できませんでした

しかし、私が./bin/spark-submit --master yarn --deploy-mode cluster examples/src/main/python/ml/logistic_regression_with_elastic_net.pyを実行すると失敗しました。エラーメッセージ:Container exited with a non-zero exit code 1

この2つのファイルを比較すると、from pyspark.ml.classification import LogisticRegressionpi.pyに追加した後、pi.pyを実行するとエラーが発生しました。

しかし、私はそれを修正する方法がわかりません。私はmlの例を実行すると自分のデータファイルをhdfsにアップロードする必要があるので、--filesを使用しようとしていますが、それは正しいですか?それが正しいとすれば、hdfs上のデータファイルのパスが分からないので、pythonスクリプトはデータファイルを取得できません。 (ファイルがHDFSにアップロードされた後、私はhdfs://master:9000/user/root/.sparkStaging/application_1488329960574_0011/mnist8m_800すなわち、パスを見ることができるが、手遅れに、私が提出したときに、私はパスを指定することができますか?)

+0

使用しているスパークのバージョンは何ですか? – Mariusz

+0

@Mariusz spark 2.0.2 – YunjieJi

答えて

0

あなたはHDFSのようにサンプルLIBSVMデータをアップロードする必要がlogistic_regression_with_elastic_netを実行するには

この例では、糸 - クライアントモードと糸クラスターモードの両方で動作します。

私が知っている限り、--filesによってアップロードされたファイルは、回帰の例のように、sparkセッションを使用して読み取ることはできません。

+0

私の目的は、送信中にデータファイルをアップロードすることです。そして、私はこれを見た '--filesあなたのアプリケーションの作業ディレクトリに置かれるファイルのリスト。これは、各ノードに配布したいデータファイルに使用することができます。 @Mariusz – YunjieJi

+0

はい、 '--files'を使って純粋なpythonで読むことができる追加ファイルを渡すことができます。しかし、ここのlibsvmのデータは入力ファイルとして扱われ、YARN上で実行されているときはエグゼキュータによって並列に読み込まれます。そのため、分散ストレージに配置する必要があります。 – Mariusz

関連する問題