如何使用python读取hadoopMap文件?

col17t5w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(429)

我有Map文件是块压缩使用defaultcodec。Map文件由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的应用程序中从中读取一些键、值。我找不到任何图书馆能做到这一点。你有什么建议和例子吗?
谢谢

v8wbuo2f

v8wbuo2f1#

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

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示例
以及mapfile.py中的可用方法

ego6inou

ego6inou2#

我建议使用spark,它有一个名为textfile()的函数,可以从hdf中读取文件并将其转换为rdd,以便使用其他spark库进行进一步处理。
以下是文档:pyspark

相关问题