如何使用python读取hadoop映射文件?

时间:2016-08-06 04:04:50

标签: python hadoop

我有使用DefaultCodec进行块压缩的映射文件。映射文件由java应用程序创建,如下所示:

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中,我需要使用python从另一个应用程序中读取一些键值。我找不到任何可以做到这一点的图书馆。你有什么建议和例子吗?

由于

2 个答案:

答案 0 :(得分:0)

我建议使用Spark,它有一个名为textFile()的函数,它可以从HDFS读取文件并将它们转换为RDD,以便使用其他Spark库进行进一步处理。

以下是文档:Pyspark

答案 1 :(得分:0)

创建一个阅读器,如下所示:

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

查看这些hadoop.io.MapFile Python examples

available methods in MapFile.py