<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/updates-to-the-sergeant-apache-drill-connector-package-a-look-at-apache-drill-1-14-0-release/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://rud.is/b/2018/08/16/updates-to-the-sergeant-apache-drill-connector-package-apache-drill-1-14-0-release/"> R – rud.is</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>Apache Drill 1.14.0 was <a rel="nofollow" href="https://drill.apache.org/blog/2018/08/05/drill-1.14-released/" target="_blank">recently released</a>, bringing with it many new features and a temporary incompatibility with the current rev of the MapR ODBC drivers. The Drill community expects new ODBC drivers to arrive shortly. The <a rel="nofollow" href="https://gitlab.com/hrbrmstr/sergeant" target="_blank"><code>sergeant</code><img alt="🔗" src="https://i0.wp.com/s.w.org/images/core/emoji/11/72x72/1f517.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"></a> is an alternative to ODBC for R users as it provides a <code>dplyr</code> interface to the REST API along with a JDBC interface and functions to work directly with the REST API in a more programmatic fashion.</p>
<h3>First-class dplyr-citizen support for the sergeant JDBC interface</h3>
<p>I’ve been primarily using the ODBC interface for a while, now, since it’s dead simple to use it with <code>dplyr</code> (as <a rel="nofollow" href="https://rud.is/books/drill-sergeant-rstats/wiring-up-drill-and-r-odbc-style.html" target="_blank">has been noted</a> in my still-unfinished, short cookbook on wiring up Drill and R). The ODBC incompatibility is pretty severe since it’s at the <a rel="nofollow" href="https://developers.google.com/protocol-buffers/" target="_blank">protobuf</a>-level, but <code>sergeant::src_drill()</code> is an easy swap out and does not have any issues since it works against the REST API. Unfortunately, the query endpoint of the REST API mangles the field order when it returns query results. This really isn’t <em>too</em> painful since it’s easy to add in a <code>select()</code> call after gathering query results to reorder things. However, it’s painful enough that it facilitated rounding out some of the corners to the JDBC interface.</p>
<p><code>sergeant::drill_jdbc()</code> now returns a <code></code>