Apache spark 使用数据帧从Informix到Spark的JDBC

Apache spark 使用数据帧从Informix到Spark的JDBC,apache-spark,apache-spark-sql,spark-dataframe,informix,Apache Spark,Apache Spark Sql,Spark Dataframe,Informix,我可以使用简单的JDBC连接程序连接到Informix数据库,但是当我尝试使用Spark Dataframes加载表时,我遇到了一个异常。Informix spark连接需要使用特定的连接器吗 以下是异常的堆栈跟踪: java.sql.SQLException: System or internal error java.lang.NumberFormatException: For input string: "table_name" at com.informix.util.IfxErrMs

我可以使用简单的JDBC连接程序连接到Informix数据库,但是当我尝试使用Spark Dataframes加载表时,我遇到了一个异常。Informix spark连接需要使用特定的连接器吗

以下是异常的堆栈跟踪:

java.sql.SQLException: System or internal error java.lang.NumberFormatException: For input string: "table_name"
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:482)
at com.informix.jdbc.IfxChar.toLong(IfxChar.java:666)
at com.informix.jdbc.IfxResultSet.getLong(IfxResultSet.java:1123)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$$anon$1.getNext(JDBCRDD.scala:411)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$$anon$1.hasNext(JDBCRDD.scala:472)
at org.apache.spark.sql.execution.datasources.DefaultWriterContainer.writeRows(WriterContainer.scala:241)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1$$anonfun$apply$mcV$sp$3.apply(InsertIntoHadoopFsRelation.scala:150)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1$$anonfun$apply$mcV$sp$3.apply(InsertIntoHadoopFsRelation.scala:150)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
at org.apache.spark.scheduler.Task.run(Task.scala:88)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

从堆栈跟踪来看,似乎存在到Informix数据库的连接

问题可能在于从Informix读取数据。Spark调用
getNext()
,调用
getLong()
getLong()
接收无法解析为数字的“table\u name”


我不知道斯帕克。可能会添加一些有关如何使用Spark的详细信息(可能是代码)。

当Spark生成数据库查询时,它会将列名放在引号中。为了适应这种情况,需要在JDBC连接URL中添加


DELIMIDENT=Y

请粘贴您的spark submit命令和异常stack@ShawnGuo:已添加异常堆栈跟踪,但未添加Spark submit命令。不幸的是,我将eclipse理解为一段黑暗时期,它表明我对eclipse的了解程度;我会拼写Java-c,o,f,f,e,e;火花是炽热材料的小白炽闪光:这些都不能帮助我将其组装成一个连贯的机制来访问Informix数据库。Je ne sais quoi等。对不起,我帮不了什么忙。我正在通过eclipse@Shawngofrom stack trace中的独立Java程序访问spark中的Informix数据。似乎有到Informix数据库的连接。问题可能在于从Informix读取数据。Spark调用了
getNext()
,调用了
getLong()
getLong()
接收到无法解析为数字的“table\u name”。我知道这是一个延迟回复。但这对我很管用。谢谢