@Override public void write(KEYOUT key, VALUEOUT value) throws IOException, InterruptedException { Session session = getSession(); try { AdhocQuery request = session.newAdhocQuery(statement); if (queryLanguage != null) { RequestOptions options = new RequestOptions(); options.setQueryLanguage(queryLanguage); request.setOptions(options); } request.setNewVariable(new XName(MR_NAMESPACE, OUTPUT_KEY_VARNAME), InternalUtilities.newValue(keyType, key)); request.setNewVariable(new XName(MR_NAMESPACE, OUTPUT_VALUE_VARNAME), InternalUtilities.newValue(valueType, value)); session.submitRequest(request); commitIfNecessary(); } catch (RequestException e) { LOG.error(e); LOG.error(statement); throw new IOException(e); } } }