1. Ошибка в этой строке кода с функцией put.add ().
Я думаю, что вы можете использовать addColumn (), как это для добавления столбца.
put.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1.1"), System.currentTimeMillis(), Bytes.toBytes("val1.1"));
put.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("qual1.2"), System.currentTimeMillis(), Bytes.toBytes("val1.2"));
put.addColumn(Bytes.toBytes("colfam2"), Bytes.toBytes("qual2.1"), System.currentTimeMillis(), Bytes.toBytes("val2.1"));
2. Вторая ошибка в этой строке кода:
Я не знаком с 'ScriptUtils', но я думаю, что он работает.
Result converted = (Result) HTableUtil.convert(put, Result.class);
3. Java не может найти символ для этих 3 методов put (), get (), raw ()
Это потому, что вы продолжаете использовать 'HTableDescriptor' для put (), get () или raw (). HTableDescriptor используется для создания таблицы, подобной DDL. Вам нужно использовать класс Table для управления с помощью put (), get () или raw ().
Table createdTable = connection.getTable(TableName.valueOf(tableName));
createdTable.put(put);
Result readFromTable = createdTable.get(new Get(key));
Кроме того, я считаю, что класс 'Result' не предоставляет raw (). Таким образом, вы можете сравнить оба результата, используя Result.compareResults () следующим образом.
Result.compareResults(readFromTable, converted);
4. Как использовать TableDescriptorBuilder
Как я уже говорил выше, Descriptor - это класс для определения вашей таблицы, семейства столбцов, столбца и т. Д. Таким образом, вам нужно использовать его, когда вы делаете / создаете их.
//Define table "myTable"
TableDescriptorBuilder table = TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName));
table.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("cf1")).setCompressionType(Compression.Algorithm.NONE).build());
//Create table "myTable"
connection.getAdmin().createTable(table.build());