Apache spark jdbc 连接到 apache drill 错误
Apache spark jdbc connect to apache drill error
我正在从 apache spark 向 apache drill 发送查询。我收到以下错误:
java.sql.SQLException: Failed to create prepared statement: PARSE
ERROR: Encountered "\"" at line 1, column 23.
跟踪时,我发现我需要写一个自定义的sql方言。问题我没有找到 pyspark 的任何示例。所有示例均针对 scala 或 java。非常感谢任何帮助。!
这是 pyspark 代码:
`dataframe_mysql = spark.read.format("jdbc").option("url", "jdbc:drill:zk=ip:2181;schema=dfs").option("driver","org.apache.drill.jdbc.Driver").option("dbtable","dfs.`/user/titanic_data/test.csv`").load()`
您似乎在 SQL 查询中使用了双引号(请分享您的 SQL)。
默认情况下,Drill 使用反引号来引用标识符 - `
但是您可以通过设置 system/session 选项来更改它(例如当您已经通过 JDBC 连接到 Drill 时)或者您可以在 JDBC 连接字符串中指定它。您可以在这里找到更多信息:
https://drill.apache.org/docs/lexical-structure/#identifier-quotes
我导航到 drill web ui 并将 planner.parser.quoting_identifiers
参数更新为 "
。然后我按如下方式编辑我的查询:
dataframe_mysql = spark.read.format("jdbc").option("url", "jdbc:drill:zk=ip:2181;schema=dfs;").option("driver","org.apache.drill.jdbc.Driver").option("dbtable","dfs.\"/user/titanic_data/test.csv\"").load()
而且效果很好!
我正在从 apache spark 向 apache drill 发送查询。我收到以下错误:
java.sql.SQLException: Failed to create prepared statement: PARSE ERROR: Encountered "\"" at line 1, column 23.
跟踪时,我发现我需要写一个自定义的sql方言。问题我没有找到 pyspark 的任何示例。所有示例均针对 scala 或 java。非常感谢任何帮助。!
这是 pyspark 代码:
`dataframe_mysql = spark.read.format("jdbc").option("url", "jdbc:drill:zk=ip:2181;schema=dfs").option("driver","org.apache.drill.jdbc.Driver").option("dbtable","dfs.`/user/titanic_data/test.csv`").load()`
您似乎在 SQL 查询中使用了双引号(请分享您的 SQL)。
默认情况下,Drill 使用反引号来引用标识符 - `
但是您可以通过设置 system/session 选项来更改它(例如当您已经通过 JDBC 连接到 Drill 时)或者您可以在 JDBC 连接字符串中指定它。您可以在这里找到更多信息:
https://drill.apache.org/docs/lexical-structure/#identifier-quotes
我导航到 drill web ui 并将 planner.parser.quoting_identifiers
参数更新为 "
。然后我按如下方式编辑我的查询:
dataframe_mysql = spark.read.format("jdbc").option("url", "jdbc:drill:zk=ip:2181;schema=dfs;").option("driver","org.apache.drill.jdbc.Driver").option("dbtable","dfs.\"/user/titanic_data/test.csv\"").load()
而且效果很好!