You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Gagarkin (Jira)" <ji...@apache.org> on 2022/08/09 07:44:00 UTC
[jira] [Updated] (IGNITE-12519) Spark SQL not working with NON upper case column names
[ https://issues.apache.org/jira/browse/IGNITE-12519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ivan Gagarkin updated IGNITE-12519:
-----------------------------------
Epic Link: IGNITE-17460
> Spark SQL not working with NON upper case column names
> -------------------------------------------------------
>
> Key: IGNITE-12519
> URL: https://issues.apache.org/jira/browse/IGNITE-12519
> Project: Ignite
> Issue Type: Bug
> Components: spark
> Affects Versions: 2.7.6
> Environment: 1) Spark 2.3.0 (Tried on Mesos Master and Local Master)
> 2) Ignite 2.7.6 (10 Nodes Cluster on Kubernetes)
> 3) Spark Ignite 2.7.6
> Reporter: Praneeth Ramesh
> Priority: Major
> Labels: dataframe, spark, spark-shell
>
> I created a simple table as below.
> {code:java}
> CREATE TABLE acc (
> "accId" VARCHAR PRIMARY KEY,
> "accCol1" VARCHAR,
> "accCol2" INT,
> "accCol3" VARCHAR,
> "accCol4" BOOLEAN
> );{code}
> And trying to read the data from table from Ignite Spark as below.
>
> {code:java}
> val igniteDF = spark.read
> .format(FORMAT_IGNITE)
> .option(OPTION_TABLE, "acc")
> .option(OPTION_CONFIG_FILE, "example-config.xml")
> .load()
> igniteDF.show(100, false)
> {code}
>
> But I see an exception as below.
> {code:java}
> Caused by: org.h2.jdbc.JdbcSQLException: Column "ACCCOL1" not found; SQL statement:
> SELECT accCol4, CAST(accCol1 AS VARCHAR) AS accCol1, accCol2, CAST(accCol3 AS VARCHAR) AS accCol3, accId FROM ACC LIMIT 21 [42122-197]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
> at org.h2.message.DbException.get(DbException.java:179)
> at org.h2.message.DbException.get(DbException.java:155)
> at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:150)
> at org.h2.command.dml.Select.prepare(Select.java:858)
> at org.h2.command.Parser.prepareCommand(Parser.java:283)
> at org.h2.engine.Session.prepareLocal(Session.java:611)
> at org.h2.engine.Session.prepareCommand(Session.java:549)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247)
> at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:76)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:694)
> at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepare0(IgniteH2Indexing.java:539)
> at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:509)
> at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:476){code}
>
> When I try naming the TABLE cols with UPPER CASE everything works fine. But when I use the quotes in the Column Names to preserve the case, then it breaks with the exception.
> From exception I can see query built is still having the UPPER case column name ACCCOL1 instead of the camel case column names.
> Is there any workaround for this.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)