I have found the solution for this error. I have to register a JdbcDialect for Drill as mentioned in the following post on SO:
https://stackoverflow.com/questions/35476076/integrating-spark-sql-and-apache-drill-through-jdbc Thanks On Sun, Jul 23, 2017 at 2:10 AM, Luqman Ghani <lgsa...@gmail.com> wrote: > I have done that, but Spark is encompassing my query with same clause: > SELECT "CustomerID", etc FROM ( my query from table) so same error. > > On Sun, Jul 23, 2017 at 2:02 AM, ayan guha <guha.a...@gmail.com> wrote: > >> You can formulate a query in dbtable clause in jdbc reader. >> >> On Sun, 23 Jul 2017 at 6:43 am, Luqman Ghani <lgsa...@gmail.com> wrote: >> >>> Hi, >>> >>> I'm working on integrating Apache Drill with Apache Spark with Drill's >>> JDBC driver. I'm trying a simple select * from table from Drill through >>> spark.sqlContext.load via jdbc driver. I'm running the following code in >>> Spark Shell: >>> >>> > ./bin/spark-shell --driver-class-path >>> > /home/ubuntu/dir/spark/jars/jackson-databind-2.6.5.jar >>> --packages org.apache.drill.exec:drill-jdbc-all:1.10.0 >>> >>> scala> val options = Map[String,String]( >>> >>> "driver" -> "org.apache.drill.jdbc.Driver", >>> >>> "url" -> "jdbc:drill:drillbit=localhost:31010", >>> >>> "dbtable" -> "(SELECT * FROM dfs.root.`output.parquet`) AS Customers") >>> >>> scala> val df = spark.sqlContext.load("jdbc",options) >>> >>> scala> df.schema >>> >>> res0: org.apache.spark.sql.types.StructType = >>> StructType(StructField(CustomerID,IntegerType,true), >>> >>> StructField(First_name,StringType,true), >>> >>> StructField(Last_name,StringType,true), >>> >>> StructField(Email,StringType,true), StructField(Gender,StringType, >>> true), >>> >>> StructField(Country,StringType,true)) >>> >>> It gives correct schema of DataFrame, but when I do: >>> >>> scala> df.show >>> >>> *I am facing the following error:* >>> >>> java.sql.SQLException: Failed to create prepared statement: PARSE ERROR: >>> *Encountered >>> "\"" at line 1, column 23.* >>> >>> Was expecting one of: >>> >>> "STREAM" ... >>> >>> "DISTINCT" ... >>> >>> "ALL" ... >>> >>> "*" ... >>> >>> "+" ... >>> >>> "-" ... >>> >>> <UNSIGNED_INTEGER_LITERAL> ... >>> >>> __MORE_DRILL_GRAMMAR__ ... >>> >>> >>> SQL Query SELECT * FROM (SELECT "CustomerID","First_name","Las >>> t_name","Email","Gender","Country" FROM (SELECT * FROM >>> dfs.root.`output.parquet`) AS Customers ) LIMIT 0 >>> >>> Now, the Encountered quote is at "CustomerID" in the query. >>> >>> I tried to run the following query in Drill shell: >>> >>> SELECT "CustomerID" from dfs.root.`output.parquet`; >>> >>> It gives the same error of 'Encountered "\"" '. >>> >>> I want to ask if there is any way to remove the above "SELECT >>> "CustomerID","First_name","Last_name","Email","Gender","Country" FROM" from >>> the above query formulated by Spark and pushed down to Apache Drill via >>> JDBC driver. >>> >>> Or any other way around like removing the Quotes? >>> >>> >>> Thanks, >>> >>> Luqman >>> >> -- >> Best Regards, >> Ayan Guha >> > >