I am using ignite version 1.6 and getting an error while loading data from a
csv file through DataStreamer into a IgniteCache<BinaryObject,
BinaryObject>. The error is

Failed to execute compound future reducer: GridCompoundFuture [rdc=null,
initFlag=1, lsnrCalls=0, done=false, cancelled=false, err=null,
futs=[true]]class org.apache.ignite.IgniteCheckedException: Class definition
was not found at marshaller cache and local file. [id=-1819342,
file=/opt/ignite/apache-ignite-fabric-1.6.0-bin/work/marshaller/-1819342.classname]

Complete error trace is pasted here - http://pastebin.com/5KRG9352

Below is the code that loads the data from the csv file

    public void loadTableWithCustomKeyColumns(Ignite ignite, Table table) {
        CsvReader csvfile = null;
        try (IgniteDataStreamer<BinaryObject, BinaryObject> streamer =
ignite.dataStreamer(table.getName())) {
            streamer.keepBinary(true);
            csvfile = new CsvReader(FILE_PATH + table.getName() + ".csv");
            csvfile.readHeaders();
            long recordCounter = 0;

            BinaryObjectBuilder valueBuilder =
ignite.binary().builder(table.getCacheValueType());

            BinaryObjectBuilder keyBuilder =
ignite.binary().builder(table.getCacheKeyType());
            while (csvfile.readRecord()) {
                List keyValues = Lists.newArrayList();
                for (Column col : table.getColumns()) {
                    if(col.isKeyColumn()) {
                        Object keyColValue = getValue(col,
csvfile.get(col.getName()), recordCounter);
                        keyValues.add(keyColValue);
                        keyBuilder.setField(col.getName(), keyColValue);
                    } else {
                        valueBuilder.setField(col.getName(), getValue(col,
csvfile.get(col.getName()), recordCounter));
                    }
                }

                BinaryObject keyObject = keyBuilder.build();
                BinaryObject valueObject = valueBuilder.build();

                streamer.addData(keyObject, valueObject);
                recordCounter++;
            }
            logger.info("Loaded {} in {} cache", recordCounter,
table.getName());
        } catch (IOException e) {
            logger.error("Error while reading csv", e);
        } finally {
            if (csvfile != null) {
                csvfile.close();
            }
        }
    }

What could be going wrong?

Thanks




--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/Error-while-loading-data-into-cache-with-BinaryObject-as-key-field-tp6014.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to