私たちはマザーにファイル群を読み込む必要があるので、非Hadoop環境の 環境では、それぞれとfile=open(path, mode)
を使用して、それぞれのファイルを で読み込みます。私はHadoopStreamingが ファイル出力する減速機のマッパーとCONVER標準出力の標準入力に ファイル入力を変換することを読んでSTDINまたはファイルをHadoop環境のマッパー入力として使用しますか?
しかし、Hadoopの環境では、私は約いくつかの質問を持っているかへの入力ファイル:
は、私たちがmapper.pyでSTDINからの入力を設定し、 HadoopStreamingがSTDINにHDFS入力ディレクトリ内のファイルを変換できるようにする必要がありますか?
各ファイルを別々に読み込み、各行を解析する場合、 はmapper.pyのファイルから入力をどのように設定できますか?
非Hadoopの環境セットのための私の以前のPythonコード:しかしos.walkのルート、dirsに、ファイル( '非HDFSのパス') ため .....
、 Hadoop環境では、 'non-hdfsのパス'を に変更する必要があります。ここでは、私はcopyFromLocalにHDFSのパスを設定します。 などのように成功しました。os.walk('/user/hadoop/in')
などが成功しました。これは、 Hadoop DFS -ls、およびos.walk('home/hadoop/files')
- この は非Hadoopの環境での私のローカルパスである、とさえos.walk('hdfs:// host:fs_port/user/hadoop/in')
.. ..
ファイル の操作をmapper.pyで入力することができますか、またはSTDINから入力する必要があるかどうかは誰でも教えてください。
ありがとうございました。
こんにちは@JDロングは、私は、HDFSディレクトリに、私はディレクトリからすべてのCSVファイルを読み込みたい多くのCSVファイルを持って、私はこれを行うことができ、どのように提案することができます。私は何をすべきか混乱させています。ディレクトリからローカルに読み込んだcsvファイルのテスト用のスクリプトを作成しました。私はサーバー上で実行する場合、それは入力ストリーミングで動作し、私はファイルを読み込むために例外を取得しています(ストリーミングコマンドが失敗しました)。私はhadoop用のpythonで新しいので、私は行う方法を知らない。どうすればいいですかお勧めします。 – MegaBytes
何を試しましたか?これを見てから、何かをハックしようとする。あなたがスラッグを打つならば、StackOverflowの質問にそれを形成してください。 http://blog.cloudera.com/blog/2013/01/a-guide-to-python-frameworks-for-hadoop/:次にプロセスを繰り返し –