@Override public List<Row> execute(List<Row> rows, ExecutorContext context) throws DirectiveExecutionException { for (Row row : rows) { Map<String, Object> toJson = new HashMap<>(); for (Pair<String, Object> entry : row.getFields()) { toJson.put(entry.getFirst(), entry.getSecond()); } row.addOrSet(column, gson.toJson(toJson)); } return rows; } }
@Override public List<Row> execute(List<Row> rows, ExecutorContext context) throws DirectiveExecutionException { for (Row row : rows) { int idx = 0; for (Pair<String, Object> v : row.getFields()) { if (!keep.contains(v.getFirst())) { row.remove(idx); } else { ++idx; } } } return rows; } }
if (nameIdx == -1) { Pair<String, String> components = extractDomainAndAccount(emailAddress); row.add(column + "_account", components.getFirst()); row.add(column + "_domain", components.getSecond()); } else { emailAddress = emailAddress.substring(nameIdx + 1, endIdx); Pair<String, String> components = extractDomainAndAccount(emailAddress); row.add(column + "_account", components.getFirst()); row.add(column + "_domain", components.getSecond());
String name = column.getFirst(); Object value = column.getSecond();