

{"id":4696,"date":"2016-12-05T15:51:47","date_gmt":"2016-12-05T20:51:47","guid":{"rendered":"https:\/\/rud.is\/b\/?p=4696"},"modified":"2018-03-07T17:33:00","modified_gmt":"2018-03-07T22:33:00","slug":"interacting-with-amazon-athena-from-r","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/","title":{"rendered":"Interacting With Amazon Athena from R"},"content":{"rendered":"<p>This is a short post for those looking to test out <a href=\"https:\/\/aws.amazon.com\/athena\/\">Amazon Athena<\/a> with R.<\/p>\n<p>Amazon makes Athena available via JDBC, so you can use <code>RJDBC<\/code> to query data. All you need is their JAR file and some setup information. Here&#8217;s how to get the JAR file to the current working directory:<\/p>\n<pre id=\"athena-dl\"><code class=\"language-r\">URL &lt;- &#039;https:\/\/s3.amazonaws.com\/athena-downloads\/drivers\/AthenaJDBC41-1.0.0.jar&#039;\r\nfil &lt;- basename(URL)\r\nif (!file.exists(fil)) download.file(URL, fil)<\/code><\/pre>\n<p>To avoid putting credentials in code, you can store the AWS key and secret you&#8217;re using for the queries in <code>ATHENA_USER<\/code> and <code>ATHENA_PASSWORD<\/code> environment variables via <code>~\/.Renviron<\/code>. You&#8217;ll also need an S3 bucket writable by those credentials for the Athena staging directory. With that info in hand, it&#8217;s easy to connect:<\/p>\n<pre id=\"athena-r-setup\"><code class=\"language-r\">library(RJDBC)\r\nlibrary(dplyr)\r\n\r\ndrv &lt;- JDBC(driverClass=&quot;com.amazonaws.athena.jdbc.AthenaDriver&quot;, fil, identifier.quote=&quot;&#039;&quot;)\r\n\r\ncon &lt;- jdbcConnection &lt;- dbConnect(drv, &#039;jdbc:awsathena:\/\/athena.us-east-1.amazonaws.com:443\/&#039;,\r\n                                   s3_staging_dir=&quot;s3:\/\/accessible-bucket&quot;,\r\n                                   user=Sys.getenv(&quot;ATHENA_USER&quot;),\r\n                                   password=Sys.getenv(&quot;ATHENA_PASSWORD&quot;))<\/code><\/pre>\n<p>Even if you have no data configured in Athena, you can check out the test data available to all:<\/p>\n<pre id=\"athena-test-data\"><code class=\"language-r\">dbListTables(con)\r\n## [1] &quot;elb_logs&quot;<\/code><\/pre>\n<p>If that worked, then you should be able to query data (using the fully qualified table name in this case):<\/p>\n<pre id=\"athena-query\"><code class=\"language-r\">dbGetQuery(con, &quot;SELECT * FROM sampledb.elb_logs LIMIT 10&quot;) %&gt;% \r\n  dplyr::glimpse()\r\n## Observations: 10\r\n## Variables: 16\r\n## $ timestamp             &lt;chr&gt; &quot;2014-09-27T00:00:25.424956Z&quot;, &quot;2014-09-27T00:00:56.439218Z&quot;, &quot;2014-09-27T00:01:27.441734Z&quot;, &quot;2014-09-27T00:01:58.366715Z&quot;, &quot;2014-09-27T00:02:29.446363Z&quot;, &quot;2014-09-2...\r\n## $ elbname               &lt;chr&gt; &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;, &quot;lb-demo&quot;\r\n## $ requestip             &lt;chr&gt; &quot;241.230.198.83&quot;, &quot;252.26.60.51&quot;, &quot;250.244.20.109&quot;, &quot;247.59.58.167&quot;, &quot;254.64.224.54&quot;, &quot;245.195.140.77&quot;, &quot;245.195.140.77&quot;, &quot;243.71.49.173&quot;, &quot;240.139.5.14&quot;, &quot;251.192.4...\r\n## $ requestport           &lt;dbl&gt; 27026, 27026, 27026, 27026, 27026, 27026, 27026, 27026, 27026, 27026\r\n## $ backendip             &lt;chr&gt; &quot;251.192.40.76&quot;, &quot;249.89.116.3&quot;, &quot;251.111.156.171&quot;, &quot;251.139.91.156&quot;, &quot;251.111.156.171&quot;, &quot;254.64.224.54&quot;, &quot;254.64.224.54&quot;, &quot;250.244.20.109&quot;, &quot;247.65.176.249&quot;, &quot;250.2...\r\n## $ backendport           &lt;dbl&gt; 443, 8888, 8888, 8888, 8000, 8888, 8888, 8888, 8888, 8888\r\n## $ requestprocessingtime &lt;dbl&gt; 9.1e-05, 9.4e-05, 8.4e-05, 9.7e-05, 9.1e-05, 9.3e-05, 9.4e-05, 8.3e-05, 9.0e-05, 9.0e-05\r\n## $ backendprocessingtime &lt;dbl&gt; 0.046598, 0.038973, 0.047054, 0.039845, 0.061461, 0.037791, 0.047035, 0.048792, 0.045724, 0.029918\r\n## $ clientresponsetime    &lt;dbl&gt; 4.9e-05, 4.7e-05, 4.9e-05, 4.9e-05, 4.0e-05, 7.7e-05, 7.5e-05, 7.3e-05, 4.0e-05, 6.7e-05\r\n## $ elbresponsecode       &lt;chr&gt; &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;\r\n## $ backendresponsecode   &lt;chr&gt; &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;, &quot;400&quot;, &quot;400&quot;, &quot;200&quot;, &quot;200&quot;, &quot;200&quot;\r\n## $ receivedbytes         &lt;dbl&gt; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r\n## $ sentbytes             &lt;dbl&gt; 2, 2, 2, 2, 2, 2, 2, 2, 2, 2\r\n## $ requestverb           &lt;chr&gt; &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;, &quot;GET&quot;\r\n## $ url                   &lt;chr&gt; &quot;http:\/\/www.abcxyz.com:80\/jobbrowser\/?format=json&amp;state=running&amp;user=20g578y&quot;, &quot;http:\/\/www.abcxyz.com:80\/jobbrowser\/?format=json&amp;state=running&amp;user=20g578y&quot;, &quot;http:\/...\r\n## $ protocol              &lt;chr&gt; &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;, &quot;HTTP\/1.1&quot;<\/code><\/pre>\n<p>And, you can disconnect when done:<\/p>\n<pre id=\"athena-disconnect\"><code class=\"language-r\">dbDisconnect(con)<\/code><\/pre>\n<p>You should probably store the JAR file in a central location and refer to it that way in &#8220;production&#8221; scripts.<\/p>\n<p>Now, you can go crazy querying data and racking up AWS charges ?.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a short post for those looking to test out Amazon Athena with R. Amazon makes Athena available via JDBC, so you can use RJDBC to query data. All you need is their JAR file and some setup information. Here&#8217;s how to get the JAR file to the current working directory: To avoid putting [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[91],"tags":[810],"class_list":["post-4696","post","type-post","status-publish","format-standard","hentry","category-r","tag-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Interacting With Amazon Athena from R - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Interacting With Amazon Athena from R - rud.is\" \/>\n<meta property=\"og:description\" content=\"This is a short post for those looking to test out Amazon Athena with R. Amazon makes Athena available via JDBC, so you can use RJDBC to query data. All you need is their JAR file and some setup information. Here&#8217;s how to get the JAR file to the current working directory: To avoid putting [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-05T20:51:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-07T22:33:00+00:00\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Interacting With Amazon Athena from R\",\"datePublished\":\"2016-12-05T20:51:47+00:00\",\"dateModified\":\"2018-03-07T22:33:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/\"},\"wordCount\":211,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"keywords\":[\"post\"],\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/\",\"name\":\"Interacting With Amazon Athena from R - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2016-12-05T20:51:47+00:00\",\"dateModified\":\"2018-03-07T22:33:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2016\\\/12\\\/05\\\/interacting-with-amazon-athena-from-r\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Interacting With Amazon Athena from R\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/\",\"name\":\"rud.is\",\"description\":\"&quot;In God we trust. All others must bring data&quot;\",\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rud.is\\\/b\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\",\"name\":\"hrbrmstr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"hrbrmstr\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\"},\"description\":\"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7\",\"sameAs\":[\"http:\\\/\\\/rud.is\"],\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/author\\\/hrbrmstr\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Interacting With Amazon Athena from R - rud.is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/","og_locale":"en_US","og_type":"article","og_title":"Interacting With Amazon Athena from R - rud.is","og_description":"This is a short post for those looking to test out Amazon Athena with R. Amazon makes Athena available via JDBC, so you can use RJDBC to query data. All you need is their JAR file and some setup information. Here&#8217;s how to get the JAR file to the current working directory: To avoid putting [&hellip;]","og_url":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/","og_site_name":"rud.is","article_published_time":"2016-12-05T20:51:47+00:00","article_modified_time":"2018-03-07T22:33:00+00:00","author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Interacting With Amazon Athena from R","datePublished":"2016-12-05T20:51:47+00:00","dateModified":"2018-03-07T22:33:00+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/"},"wordCount":211,"commentCount":9,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"keywords":["post"],"articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/","url":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/","name":"Interacting With Amazon Athena from R - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2016-12-05T20:51:47+00:00","dateModified":"2018-03-07T22:33:00+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2016\/12\/05\/interacting-with-amazon-athena-from-r\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Interacting With Amazon Athena from R"}]},{"@type":"WebSite","@id":"https:\/\/rud.is\/b\/#website","url":"https:\/\/rud.is\/b\/","name":"rud.is","description":"&quot;In God we trust. All others must bring data&quot;","publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rud.is\/b\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886","name":"hrbrmstr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"hrbrmstr"},"logo":{"@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1"},"description":"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7","sameAs":["http:\/\/rud.is"],"url":"https:\/\/rud.is\/b\/author\/hrbrmstr\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p23idr-1dK","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":5954,"url":"https:\/\/rud.is\/b\/2017\/05\/16\/r%e2%81%b6-using-r-with-amazon-athena-awas-temporary-security-credentials\/","url_meta":{"origin":4696,"position":0},"title":"R\u2076 \u2014 Using R With Amazon Athena &#038; AWS Temporary Security Credentials","author":"hrbrmstr","date":"2017-05-16","format":false,"excerpt":"Most of the examples of working with most of the AWS services show basic username & password authentication. That's all well-and-good, but many shops use the AWS Security Token Service to provide temporary credentials and session tokens to limit exposure and provide more uniform multi-factor authentication. At my workplace, Frank\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10121,"url":"https:\/\/rud.is\/b\/2018\/04\/20\/painless-odbc-dplyr-connections-to-amazon-athena-and-apache-drill-with-r-odbc\/","url_meta":{"origin":4696,"position":1},"title":"Painless ODBC  + dplyr Connections to Amazon Athena and Apache Drill with R &#038; odbc","author":"hrbrmstr","date":"2018-04-20","format":false,"excerpt":"I spent some time this morning upgrading the JDBC driver (and changing up some supporting code to account for changes to it) for my metis package? which connects R up to Amazon Athena via RJDBC. I'm used to JDBC and have to deal with Java separately from R so I'm\u2026","rel":"","context":"In &quot;Apache Drill&quot;","block_context":{"text":"Apache Drill","link":"https:\/\/rud.is\/b\/category\/apache-drill\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/today-is-a-good-day-to-query.jpg?fit=700%2C535&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/today-is-a-good-day-to-query.jpg?fit=700%2C535&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/today-is-a-good-day-to-query.jpg?fit=700%2C535&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/04\/today-is-a-good-day-to-query.jpg?fit=700%2C535&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":11921,"url":"https:\/\/rud.is\/b\/2019\/02\/17\/conquering-caffeinated-amazon-athena-with-the-metis-trio-of-packages\/","url_meta":{"origin":4696,"position":2},"title":"Conquering Caffeinated Amazon Athena with the metis Trio of Packages","author":"hrbrmstr","date":"2019-02-17","format":false,"excerpt":"I must preface this post with the posit that if you're doing anything interactive() with Amazon Athena you should seriously consider just using their free ODBC drivers as it's the easiest way to wire them up to R DBI- and tidyverse-wise. I've said as much in previous posts. Drop a\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11346,"url":"https:\/\/rud.is\/b\/2018\/08\/11\/connecting-apache-zeppelin-up-to-amazon-athena-with-an-iam-profile-name\/","url_meta":{"origin":4696,"position":3},"title":"Connecting Apache Zeppelin Up to Amazon Athena with an IAM Profile Name","author":"hrbrmstr","date":"2018-08-11","format":false,"excerpt":"Apache Zeppelin is a \"notebook\" alternative to Jupyter (and other) notebooks. It supports a plethora of kernels\/interpreters and can do a ton of things that this post isn't going to discuss (perhaps future ones will, especially since it's the first \"notebook\" environment I've been able to tolerate for longer than\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/08\/athena-example-1.png?fit=1200%2C704&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":11070,"url":"https:\/\/rud.is\/b\/2018\/07\/14\/alleviating-aws-athena-aggravation-with-asynchronous-assistance\/","url_meta":{"origin":4696,"position":4},"title":"Alleviating AWS Athena Aggravation with Asynchronous Assistance","author":"hrbrmstr","date":"2018-07-14","format":false,"excerpt":"I've blogged about how to use Amazon Athena with R before and if you are a regular Athena user, you've likely run into a situation where you prepare a dplyr chain, fire off a collect() and then wait. And, wait. And, wait. And, wait. Queries that take significant processing time\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11077,"url":"https:\/\/rud.is\/b\/2018\/07\/20\/a-new-boto3-amazon-athena-client-wrapper-with-dplyr-async-query-support\/","url_meta":{"origin":4696,"position":5},"title":"A new &#8216;boto3&#8217; Amazon Athena client wrapper with dplyr async query support","author":"hrbrmstr","date":"2018-07-20","format":false,"excerpt":"A previous post explored how to deal with Amazon Athena queries asynchronously. The function presented is a beast, though it is on purpose (to provide options for folks). In reality, nobody really wants to use rJava wrappers much anymore and dealing with icky Python library calls directly just feels wrong,\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/4696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/comments?post=4696"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/4696\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=4696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=4696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=4696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}