default <T> T getField(int i) { return getAs(i); }
@Override public void process(Row value) { try { long eventTime = value.getAs(eventTimeIndex); hdfsFactory.writeLine(eventTime, value); } catch (ClassCastException e) { logger.error("eventTimeField {}, index [{}], but value is {}", config.eventTimeName, eventTimeIndex, value.getAs(eventTimeIndex)); try { TimeUnit.MILLISECONDS.sleep(1); } catch (InterruptedException e1) { Thread.currentThread().interrupt(); } } catch (IOException e) { logger.error("", e); } }
@Override public void process(Row value) { Gson gson = new Gson(); Map<String, Object> map = new HashMap<>(); for (String fieldName : schema.getFieldNames()) { map.put(fieldName, value.getAs(fieldName)); } String message = gson.toJson(map); kafkaProducer.send(message); }
@Override public void process(Row row) { try { int i = 1; for (String key : keys) { Object value = isNumeric(key) ? row.getAs(Integer.parseInt(key)) : row.getAs(key); statement.setObject(i, value); i += 1; } statement.addBatch(); // submit batch if (num++ >= 50) { statement.executeBatch(); num = 0; } } catch (SQLException e) { throwsException(e); } }
@Override public void process(Row value) { Object rowkey = value.getAs(rowkeyIndex); if (rowkey == null) { return; } Put put = new Put(BytesUtil.toBytes(rowkey)); try { for (String fieldName : schema.getFieldNames()) { if (!config.rowkey.equals(fieldName)) { Tuple2<String, String> tuple2 = columMapping.get(fieldName); if (tuple2 != null) { hbaseHelper.addColumn(tuple2.f0(), tuple2.f1(), value.getAs(fieldName), put); } else { logger.warn("Field:" + fieldName + " not defined in table " + tableName); } } } if (!put.isEmpty()) { hbaseHelper.store(put); } } catch (Exception e) { logger.error("put record to hbase fail.", e); } }
@Override public void writeLine(Row row) { Group group = groupFactory.newGroup(); List<ColumnDescriptor> columns = schema.getColumns(); for (int i = 0; i < row.size(); i++) { Object value = row.getAs(i); addValueToGroup(columns.get(i).getType().javaType, group, i++, value); } try { writeGroup(group); } catch (IOException e) { logger.error("", e); } }