you ran out of kryo buffer. are you using spark 1.1 (which supports buffer
resizing) or spark 1.0 (which has a fixed size buffer)?
On Oct 21, 2014 5:30 PM, "nitinkak001" <nitinkak...@gmail.com> wrote:

> I am running a simple rdd filter command. What does it mean?
> Here is the full stack trace(and code below it):
>
> com.esotericsoftware.kryo.KryoException: Buffer overflow. Available: 0,
> required: 133
>         at com.esotericsoftware.kryo.io.Output.require(Output.java:138)
>         at
> com.esotericsoftware.kryo.io.Output.writeString_slow(Output.java:420)
>         at com.esotericsoftware.kryo.io.Output.writeString(Output.java:326)
>         at
>
> com.esotericsoftware.kryo.serializers.DefaultArraySerializers$StringArraySerializer.write(DefaultArraySerializers.java:274)
>         at
>
> com.esotericsoftware.kryo.serializers.DefaultArraySerializers$StringArraySerializer.write(DefaultArraySerializers.java:262)
>         at
> com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:568)
>         at
>
> org.apache.spark.serializer.KryoSerializerInstance.serialize(KryoSerializer.scala:138)
>         at
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:197)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
>
> *Here is the code of the main function:*
>
> /String comparisonFieldIndexes = "16,18";
> String segmentFieldIndexes = "14,15";
> String comparisonFieldWeights = "50, 50";
> String delimiter = ""+'\001';
>
> PartitionDataOnColumn parOnCol = new PartitionDataOnColumn(70,
> comparisonFieldIndexes, comparisonFieldWeights, segmentFieldIndexes,
> delimiter);
>
> JavaRDD<String> filtered_rdd = origRDD.filter(parOnCol.new
> FilterEmptyFields(parOnCol.fieldIndexes, parOnCol.DELIMITER) );
>
> parOnCol.printRDD(filtered_rdd);/
>
>
> *Here is the FilterEmptyFields class:*
>
>         /public class FilterEmptyFields implements Function<String,
> Boolean>
> {
>
>                 final int[] nonEmptyFields;
>                 final String DELIMITER;
>
>                 public FilterEmptyFields(int[] nonEmptyFields, String
> delimiter){
>                         this.nonEmptyFields = nonEmptyFields;
>                         this.DELIMITER = delimiter;
>                 }
>
>                 @Override
>                 public Boolean call(String s){
>
>                         String[] fields = s.split(DELIMITER);
>
>                         for(int i=0; i<nonEmptyFields.length; i++){
>                                 if(fields[nonEmptyFields[i]] == null  ||
> fields[nonEmptyFields[i]].isEmpty()){
>                                         return false;
>                                 }
>                         }
>
>                         return true;
>                 }
>
>         }&lt;/i>
>
> Any suggestions guys?
>
>
>
> --
> View this message in context:
> http://apache-spark-user-list.1001560.n3.nabble.com/com-esotericsoftware-kryo-KryoException-Buffer-overflow-tp16947.html
> Sent from the Apache Spark User List mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
> For additional commands, e-mail: user-h...@spark.apache.org
>
>

Reply via email to