{"id":106763,"date":"2020-09-14T07:00:00","date_gmt":"2020-09-14T04:00:00","guid":{"rendered":"https:\/\/www.javacodegeeks.com\/?p=106763"},"modified":"2020-09-11T09:30:20","modified_gmt":"2020-09-11T06:30:20","slug":"aws-glue-can-not-create-a-path-from-an-empty-string","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html","title":{"rendered":"AWS Glue \u2013 Can not create a Path from an empty string"},"content":{"rendered":"<h2 class=\"wp-block-heading\">1. Overview<\/h2>\n<p>I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance:<\/p>\n<div>\n<div id=\"highlighter_911038\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">Exception <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">thread <\/code><code class=\"bash string\">\"main\"<\/code> <code class=\"bash plain\">java.lang.IllegalArgumentException: Can not create a Path from an empty string<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>As we know, AWS Glue is a fully managed ETL service that is built on an Apache Spark environment. As such, AWS Glue jobs can be written in Scala or Python (pyspark).<\/p>\n<p>My Glue job was written in Python and this error didn\u2019t really seem to tell me much. Where is there an empty string I wondered?<\/p>\n<p>I searched online and found a lot of results that did not apply to me, such as this one on <a href=\"https:\/\/issues.apache.org\/jira\/browse\/PHOENIX-4056\" target=\"_blank\" rel=\"noreferrer noopener\">apache.org<\/a>, where the solution is: \u201cI degradate the spark version from 2.2.0 to 2.1.1, is resolved with the error.<br \/>So phoenix 4.11 -hbase1.20 with spark2.2.0 is not work, the compatibility is not good.\u201d<\/p>\n<p>I have limited AWS Glue knowledge at this point. However, since it is a managed service, I did not find it applicable.<\/p>\n<p>Thankfully, I did manage to solve this issue.<\/p>\n<h2 class=\"wp-block-heading\">2. Solution<\/h2>\n<p>Here are the steps I took to solve the <em>Can not create a Path from an empty string<\/em> error in my Glue job:<\/p>\n<ol class=\"wp-block-list\">\n<li>Ensure you can connect to the database using software like DBeaver. Check the schema.<\/li>\n<li>Remove all code from Glue job that did not create connection to DB2 database and run a simple command. In my case, this command was <em>df.printSchema()<\/em><\/li>\n<li>Remove connection string information for database and enter it all in again. Double check that it is 100% correct.<\/li>\n<li>Create a new Glue job and double check IAM permissions in AWS.<\/li>\n<li>Ensure drivers are available in \u201cSecurity configuration, script libraries, and job parameters (optional)\u201d portion of job creation.<\/li>\n<li>Ensure connection is available in Required Connections of job creation\/edit job.<\/li>\n<\/ol>\n<h2 class=\"wp-block-heading\">3. Simple Code Example for Testing Database<\/h2>\n<p>As I said, I chose to test the least amount of code possible to ensure database connectivity. If you are having this error, it is possible you have a database connection issue or perhaps a query issue for your table.<\/p>\n<p>Here is the code I ended up using for my test:<\/p>\n<div>\n<div id=\"highlighter_79070\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">sys<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">boto3<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">json<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">from awsglue.transforms <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">*<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">from awsglue.utils <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">getResolvedOptions<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash plain\">from pyspark.context <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">SparkContext<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">from awsglue.context <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">GlueContext<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">from awsglue.dynamicframe <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">DynamicFrame<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">from awsglue.job <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">Job<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">from pyspark.sql.functions <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">*<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">from pyspark.sql.functions <\/code><code class=\"bash functions\">import<\/code> <code class=\"bash plain\">col, asc<\/code><\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash plain\">args = getResolvedOptions(sys.argv, [<\/code><code class=\"bash string\">'JOB_NAME'<\/code><code class=\"bash plain\">])<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"bash plain\">sc = SparkContext()<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"bash plain\">glueContext = GlueContext(sc)<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"bash plain\">spark = glueContext.spark_session<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"bash plain\">job = Job(glueContext)<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"bash plain\">job.init(args[<\/code><code class=\"bash string\">'JOB_NAME'<\/code><code class=\"bash plain\">], args)<\/code><\/div>\n<div class=\"line number20 index19 alt1\">&nbsp;<\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"bash plain\">db_username = <\/code><code class=\"bash string\">\"username\"<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"bash plain\">db_password = <\/code><code class=\"bash string\">\"password!\"<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"bash plain\">db_url = <\/code><code class=\"bash string\">\"jdbc:db2:\/\/12.345.67.891:50000\/somedatabase\"<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"bash plain\">table_name = <\/code><code class=\"bash string\">\"database.sometable\"<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"bash plain\">jdbc_driver_name = <\/code><code class=\"bash string\">\"com.ibm.db2.jcc.DB2Driver\"<\/code><\/div>\n<div class=\"line number26 index25 alt1\">&nbsp;<\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"bash functions\">df<\/code> <code class=\"bash plain\">= glueContext.<\/code><code class=\"bash functions\">read<\/code><code class=\"bash plain\">.<\/code><code class=\"bash functions\">format<\/code><code class=\"bash plain\">(<\/code><code class=\"bash string\">\"jdbc\"<\/code><code class=\"bash plain\">).option(<\/code><code class=\"bash string\">\"driver\"<\/code><code class=\"bash plain\">, jdbc_driver_name).option(<\/code><code class=\"bash string\">\"url\"<\/code><code class=\"bash plain\">, db_url).option(<\/code><code class=\"bash string\">\"dbtable\"<\/code><code class=\"bash plain\">,<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash plain\">table_name).option(<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"bash spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"bash string\">\"user\"<\/code><code class=\"bash plain\">, db_username).option(<\/code><code class=\"bash string\">\"password\"<\/code><code class=\"bash plain\">, db_password).load()<\/code><\/div>\n<div class=\"line number30 index29 alt1\">&nbsp;<\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"bash plain\">db2_schema = <\/code><code class=\"bash functions\">df<\/code><code class=\"bash plain\">.printSchema()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>There are unnecessary imports, of course. If you change this code for your needs, it will work though.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h2 class=\"wp-block-heading\">4. Conclusion<\/h2>\n<p>If you are receiving this mysterious error on AWS Glue:<\/p>\n<div>\n<div id=\"highlighter_972765\" class=\"syntaxhighlighter  bash\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">Exception <\/code><code class=\"bash keyword\">in<\/code> <code class=\"bash plain\">thread <\/code><code class=\"bash string\">\"main\"<\/code> <code class=\"bash plain\">java.lang.IllegalArgumentException: Can not create a Path from an empty string<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>You can take comfort in being able to isolate the issue to a database issue. Check the steps I mentioned above and do them methodically. I believe you will be able to learn exactly what the cause of it is.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Java Code Geeks with permission by Michael Good, partner at our <a href=\"\/\/www.javacodegeeks.com\/join-us\/jcg\/\" target=\"_blank\" rel=\"noopener noreferrer\">JCG program<\/a>. See the original article here: <a href=\"https:\/\/michaelcgood.com\/aws-glue-can-not-create-a-path-from-an-empty-string\/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS Glue \u2013 Can not create a Path from an empty string<\/a><\/p>\n<p>Opinions expressed by Java Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread &#8220;main&#8221; java.lang.IllegalArgumentException: Can not create a Path from an empty string As we know, AWS Glue is a fully managed ETL service that is built on an Apache Spark &hellip;<\/p>\n","protected":false},"author":5558,"featured_media":112,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[758],"class_list":["post-106763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-aws"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AWS Glue \u2013 Can not create a Path from an empty string - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread &quot;main&quot;\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS Glue \u2013 Can not create a Path from an empty string - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread &quot;main&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-14T04:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michael Good\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Good\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html\"},\"author\":{\"name\":\"Michael Good\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/d13cc729556b91450ae21878a82139ed\"},\"headline\":\"AWS Glue \u2013 Can not create a Path from an empty string\",\"datePublished\":\"2020-09-14T04:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html\"},\"wordCount\":466,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"keywords\":[\"AWS\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html\",\"name\":\"AWS Glue \u2013 Can not create a Path from an empty string - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"datePublished\":\"2020-09-14T04:00:00+00:00\",\"description\":\"1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread \\\"main\\\"\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/enterprise-java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"java-interview-questions-answers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2020\\\/09\\\/aws-glue-can-not-create-a-path-from-an-empty-string.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AWS Glue \u2013 Can not create a Path from an empty string\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/d13cc729556b91450ae21878a82139ed\",\"name\":\"Michael Good\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc6ef7dbff80afe08a3cdc3b0677aaa26021085e041ce1873dc2141bc581b623?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc6ef7dbff80afe08a3cdc3b0677aaa26021085e041ce1873dc2141bc581b623?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc6ef7dbff80afe08a3cdc3b0677aaa26021085e041ce1873dc2141bc581b623?s=96&d=mm&r=g\",\"caption\":\"Michael Good\"},\"description\":\"Michael is a software engineer located in the Washington DC area that is interested in Java, cyber security, and open source technologies. Follow his personal blog to read more from Michael.\",\"sameAs\":[\"http:\\\/\\\/www.michaelcgood.com\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/michael-good\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"AWS Glue \u2013 Can not create a Path from an empty string - Java Code Geeks","description":"1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread \"main\"","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:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html","og_locale":"en_US","og_type":"article","og_title":"AWS Glue \u2013 Can not create a Path from an empty string - Java Code Geeks","og_description":"1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread \"main\"","og_url":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2020-09-14T04:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","type":"image\/jpeg"}],"author":"Michael Good","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Michael Good","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html"},"author":{"name":"Michael Good","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/d13cc729556b91450ae21878a82139ed"},"headline":"AWS Glue \u2013 Can not create a Path from an empty string","datePublished":"2020-09-14T04:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html"},"wordCount":466,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","keywords":["AWS"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html","url":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html","name":"AWS Glue \u2013 Can not create a Path from an empty string - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","datePublished":"2020-09-14T04:00:00+00:00","description":"1. Overview I was receiving this error while trying to run an AWS Glue job that communicated with a DB2 11 instance: 1 Exception in thread \"main\"","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/enterprise-java-logo.jpg","width":150,"height":150,"caption":"java-interview-questions-answers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2020\/09\/aws-glue-can-not-create-a-path-from-an-empty-string.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"AWS Glue \u2013 Can not create a Path from an empty string"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/d13cc729556b91450ae21878a82139ed","name":"Michael Good","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc6ef7dbff80afe08a3cdc3b0677aaa26021085e041ce1873dc2141bc581b623?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc6ef7dbff80afe08a3cdc3b0677aaa26021085e041ce1873dc2141bc581b623?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc6ef7dbff80afe08a3cdc3b0677aaa26021085e041ce1873dc2141bc581b623?s=96&d=mm&r=g","caption":"Michael Good"},"description":"Michael is a software engineer located in the Washington DC area that is interested in Java, cyber security, and open source technologies. Follow his personal blog to read more from Michael.","sameAs":["http:\/\/www.michaelcgood.com"],"url":"https:\/\/www.javacodegeeks.com\/author\/michael-good"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/106763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/5558"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=106763"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/106763\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=106763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=106763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=106763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}