You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/01/24 18:00:40 UTC
[jira] [Resolved] (PHOENIX-2162) Exception trying to write an ARRAY
of UNSIGNED_SMALLINT
[ https://issues.apache.org/jira/browse/PHOENIX-2162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Taylor resolved PHOENIX-2162.
-----------------------------------
Resolution: Fixed
Assignee: Dumindu Buddhika (was: Josh Mahonin)
> Exception trying to write an ARRAY of UNSIGNED_SMALLINT
> -------------------------------------------------------
>
> Key: PHOENIX-2162
> URL: https://issues.apache.org/jira/browse/PHOENIX-2162
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.5.0
> Environment: - Windows 7
> - Spark 1.3.1
> - Scala 2.10.5
> - HBase 1.0.1.1
> Reporter: Riccardo Cardin
> Assignee: Dumindu Buddhika
> Fix For: 4.7.0
>
>
> I am using Phoenix version 4.5.0 and the phoenix-spark plugin to write into HBase an ARRAY of UNSIGNED_SMALLINT. As stated in the documentation, this type is mapped to the java type java.lang.Short.
> Using the saveToPhoenix method on a RDD and passing a Scala Array of Short I obtain the following stacktrace:
> {noformat}
> Caused by: java.lang.ClassCastException: [S cannot be cast to [Ljava.lang.Object;
> at org.apache.phoenix.schema.types.PUnsignedSmallintArray.isCoercibleTo(PUnsignedSmallintArray.java:81)
> at org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:174)
> at org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:157)
> at org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:144)
> at org.apache.phoenix.compile.UpsertCompiler$UpsertValuesCompiler.visit(UpsertCompiler.java:872)
> at org.apache.phoenix.compile.UpsertCompiler$UpsertValuesCompiler.visit(UpsertCompiler.java:856)
> at org.apache.phoenix.parse.BindParseNode.accept(BindParseNode.java:47)
> at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:745)
> at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:550)
> at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:538)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:318)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:311)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:309)
> at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:239)
> at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:173)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeBatch(PhoenixStatement.java:1315)
> {noformat}
> Changing the type of the column to CHAR(1) ARRAY and use an Array of String, the write operation succeds.
> I've tried to force to use an Array[java.lang.Short), to avoid mismatch between Scala and Java types, but I've obtained the same error.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)