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