From 96b5f7e265f2015a5205add7b69566d5057238aa Mon Sep 17 00:00:00 2001 From: chenfangfang Date: Wed, 26 Aug 2015 12:02:12 +0800 Subject: [PATCH 1/2] SPARK-10220 org.apache.spark.sql.jdbc.JDBCRDD could not parse mysql table column named reserved word --- .../src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala index 0db0a26468589..b4970645e5f5e 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala @@ -235,6 +235,11 @@ private[sql] class JDBCRDD( if (sb.length == 0) "1" else sb.substring(1) } + private val columnList_backquote: String = { + val sb = new StringBuilder() + columns.foreach(x => sb.append(",").append("`"+x+"`")) + if (sb.length == 0) "1" else sb.substring(1) + } /** * Converts value to SQL expression. */ @@ -341,7 +346,7 @@ private[sql] class JDBCRDD( val myWhereClause = getWhereClause(part) - val sqlText = s"SELECT $columnList FROM $fqTable $myWhereClause" + val sqlText = s"SELECT $columnList_backquote FROM $fqTable $myWhereClause" val stmt = conn.prepareStatement(sqlText, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) val rs = stmt.executeQuery() From a4695a9f520553fdf82b8cada4497f0fb53cc600 Mon Sep 17 00:00:00 2001 From: chenfangfang Date: Wed, 26 Aug 2015 12:15:24 +0800 Subject: [PATCH 2/2] SPARK-10220 org.apache.spark.sql.jdbc.JDBCRDD could not parse mysql table column named reserved word --- sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala index b4970645e5f5e..003d1423fb0ef 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/jdbc/JDBCRDD.scala @@ -237,7 +237,7 @@ private[sql] class JDBCRDD( private val columnList_backquote: String = { val sb = new StringBuilder() - columns.foreach(x => sb.append(",").append("`"+x+"`")) + columns.foreach(x => sb.append(",").append("`" + x + "`")) if (sb.length == 0) "1" else sb.substring(1) } /**