SequenceFile Format (Hadoop)
Description
SequenceFile is a flat file format used by Apache Hadoop for storing key-value pairs. It's a binary format designed for efficient storage and retrieval in Hadoop. SequenceFile supports compression and is commonly used in Hadoop MapReduce jobs.
File Extensions
.seq- SequenceFile files.sequencefile- SequenceFile files (alias)
Implementation Details
Reading
The SequenceFile implementation:
- Parses SequenceFile format
- Reads file header with metadata
- Extracts key-value pairs
- Handles sync markers
- Converts records to dictionaries
Writing
Writing is not currently supported for SequenceFile format.
Key Features
- Hadoop format: Designed for Hadoop
- Key-value pairs: Stores key-value data
- Sync markers: Supports random access
- Compression: Supports compression
- Nested data: Supports complex data structures
Usage
from iterable import open_iterable
# Basic reading
source = open_iterable('data.seq', iterableargs={
'key_name': 'key',
'value_name': 'value'
})
for record in source:
print(record) # Contains key and value
source.close()
Parameters
key_name(str): Key name for record key (default:key)value_name(str): Key name for record value (default:value)
Limitations
- Read-only: SequenceFile format does not support writing
- Binary format: Not human-readable
- Hadoop-specific: Designed for Hadoop
- Format complexity: SequenceFile format can be complex
- Simplified implementation: May not support all SequenceFile features
Compression Support
SequenceFile has built-in compression support (separate from file-level compression):
- None, Record, Block compression
SequenceFile files can also be compressed with file-level codecs:
- GZip (
.seq.gz) - BZip2 (
.seq.bz2) - LZMA (
.seq.xz) - LZ4 (
.seq.lz4) - ZIP (
.seq.zip) - Brotli (
.seq.br) - ZStandard (
.seq.zst)
Use Cases
- Hadoop processing: Processing Hadoop data
- MapReduce: MapReduce job data
- Data storage: Storing data in Hadoop
- Big data: Large-scale data processing