2016-08-06 5 views
0

私は、DefaultCodecを使ってブロック圧縮されたマップファイルを持っています。ファイルはこのようなJavaアプリケーションによって作成されたマップ:pythonを使ってhadoopマップファイルを読むには?

MapFile.Writer writer = 
      new MapFile.Writer(conf, path, 
        MapFile.Writer.keyClass(IntWritable.class), 
        MapFile.Writer.valueClass(BytesWritable.class), 
        MapFile.Writer.compression(SequenceFile.CompressionType.BLOCK, new DefaultCodec())); 

このファイルには、HDFSに保存されていると私はいくつかのキー、パイソンを使用して別のアプリケーションで、それから値を読み取る必要があります。私はそれを行うことができるライブラリを見つけることができません。あなたはどんな提案や例がありますか?

おかげ

答えて

0

私はHDFSからファイルを読み込み、他のスパークライブラリを使用してさらに処理するためRDDSにそれらを回すことができるテキストファイル(と呼ばれる機能)を有してスパークを使用してお勧めします。ここで

はドキュメントです:Pyspark

+0

をチェック

path = '/hdfs/path/to/file' key = LongWritable() value = LongWritable() reader = MapFile.Reader(path) while reader.next(key, value): print key, value 

をあなたはに基づいて読み取り値との一例を提供することができますMapFileのキー?私はドキュメントでそれを見つけることができません。ドキュメントはMapFileには適用されないようです。 –

0

次のように読者を作成します。これらのhadoop.io.MapFile Python examples

そしてavailable methods in MapFile.py

+0

私はそれを使用しようとしましたが、私はそれを読むことができません。 「hdfs:// myserver:9000/tmp/mapfile/data」というファイルまたはディレクトリはありません。 私はコードを見て、それを使用しています: os.path.join(dirname、DATA_FILE_NAME) それはローカルマップファイルを読み取ることができるように見えます。 hdfsのものではありません。あなたはhdfsからそれを読むことができますか?もっと助けてもらえますか? –

関連する問題