SparkContext.
sequenceFile
Read a Hadoop SequenceFile with arbitrary key and value Writable class from HDFS, a local file system (available on all nodes), or any Hadoop-supported file system URI. The mechanism is as follows:
A Java RDD is created from the SequenceFile or other InputFormat, and the key and value Writable classes Serialization is attempted via Pickle pickling If this fails, the fallback is to call ‘toString’ on each key and value CPickleSerializer is used to deserialize pickled objects on the Python side
A Java RDD is created from the SequenceFile or other InputFormat, and the key and value Writable classes
Serialization is attempted via Pickle pickling
If this fails, the fallback is to call ‘toString’ on each key and value
CPickleSerializer is used to deserialize pickled objects on the Python side
CPickleSerializer
New in version 1.3.0.
path to sequencefile
fully qualified classname of key Writable class (e.g. “org.apache.hadoop.io.Text”)
fully qualified classname of value Writable class (e.g. “org.apache.hadoop.io.LongWritable”)
fully qualified name of a function returning key WritableConverter
fully qualifiedname of a function returning value WritableConverter
minimum splits in dataset (default min(2, sc.defaultParallelism))
The number of Python objects represented as a single Java object. (default 0, choose batchSize automatically)
RDD
RDD of tuples of key and corresponding value
See also
RDD.saveAsSequenceFile()
RDD.saveAsNewAPIHadoopFile()
RDD.saveAsHadoopFile()
SparkContext.newAPIHadoopFile()
SparkContext.hadoopFile()
Examples
>>> import os >>> import tempfile
Set the class of output format
>>> output_format_class = "org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat"
>>> with tempfile.TemporaryDirectory() as d: ... path = os.path.join(d, "hadoop_file") ... ... # Write a temporary Hadoop file ... rdd = sc.parallelize([(1, {3.0: "bb"}), (2, {1.0: "aa"}), (3, {2.0: "dd"})]) ... rdd.saveAsNewAPIHadoopFile(path, output_format_class) ... ... collected = sorted(sc.sequenceFile(path).collect())
>>> collected [(1, {3.0: 'bb'}), (2, {1.0: 'aa'}), (3, {2.0: 'dd'})]