Hi, 

I just started to fiddle with Spark a week ago. I am trying to understand take function more. I have a JavaRDD<T> variable, letís say dataSet which is initialized by getSequenceFileAsRDD, when I try dataSet.take(1), it throughs an error as follows:

java.lang.IllegalStateException: Must not use direct buffers with
InputStream

But when I add add the following lines before the take call: 

        dataSet.context().setCheckpointDir("/tmp/checkpoint/", true);
        dataSet.checkpoint();
        dataSet.saveAsTextFile("/tmp/backup.txtĒ);

dataSet.take(1);

Then take() works. I am confused here by how RDD's take method. Can anybody help me explain why this happens?

Thanks a lot,

-cj