You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "JeongMin Ju (JIRA)" <ji...@apache.org> on 2017/09/21 08:19:00 UTC
[jira] [Updated] (PHOENIX-4222) PhoenixStorageHandler for Hive is
not working
[ https://issues.apache.org/jira/browse/PHOENIX-4222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
JeongMin Ju updated PHOENIX-4222:
---------------------------------
Attachment: PhoenixQueryBuilder-buildExpressionStringFrom.jpeg
PhoenixQueryBuilder-getSelectColumns.jpeg
> PhoenixStorageHandler for Hive is not working
> ---------------------------------------------
>
> Key: PHOENIX-4222
> URL: https://issues.apache.org/jira/browse/PHOENIX-4222
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.11.0
> Reporter: JeongMin Ju
> Labels: hive
> Attachments: PhoenixQueryBuilder-buildExpressionStringFrom.jpeg, PhoenixQueryBuilder-getSelectColumns.jpeg
>
>
> {panel}
> ERROR CliDriver: Failed with exception java.io.IOException:java.lang.RuntimeException: org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=PHOENIX.MOVIES.movie_id
> java.io.IOException: java.lang.RuntimeException: org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=PHOENIX.MOVIES.movie_id
> at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:508)
> at org.apache.hadoop.hive.ql.exec.FetchOperator.pushRow(FetchOperator.java:415)
> at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:138)
> at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1986)
> at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:240)
> at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:172)
> at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:383)
> at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:775)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:693)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:628)
> Caused by: java.lang.RuntimeException: org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=PHOENIX.MOVIES.movie_id
> at org.apache.phoenix.hive.mapreduce.PhoenixInputFormat.getQueryPlan(PhoenixInputFormat.java:266)
> at org.apache.phoenix.hive.mapreduce.PhoenixInputFormat.getSplits(PhoenixInputFormat.java:131)
> at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextSplits(FetchOperator.java:363)
> at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:295)
> at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:446)
> ... 9 more
> Caused by: org.apache.phoenix.schema.ColumnNotFoundException: ERROR 504 (42703): Undefined column. columnName=PHOENIX.MOVIES.movie_id
> at org.apache.phoenix.schema.PTableImpl.getColumnForColumnName(PTableImpl.java:818)
> at org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.resolveColumn(FromCompiler.java:478)
> at org.apache.phoenix.compile.TupleProjectionCompiler$ColumnRefVisitor.visit(TupleProjectionCompiler.java:208)
> at org.apache.phoenix.compile.TupleProjectionCompiler$ColumnRefVisitor.visit(TupleProjectionCompiler.java:1)
> at org.apache.phoenix.parse.ColumnParseNode.accept(ColumnParseNode.java:56)
> at org.apache.phoenix.compile.TupleProjectionCompiler.createProjectedTable(TupleProjectionCompiler.java:109)
> at org.apache.phoenix.compile.QueryCompiler.compileSingleFlatQuery(QueryCompiler.java:528)
> at org.apache.phoenix.compile.QueryCompiler.compileSingleQuery(QueryCompiler.java:507)
> at org.apache.phoenix.compile.QueryCompiler.compileSelect(QueryCompiler.java:202)
> at org.apache.phoenix.compile.QueryCompiler.compile(QueryCompiler.java:157)
> at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:475)
> at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:1)
> at org.apache.phoenix.jdbc.PhoenixStatement.compileQuery(PhoenixStatement.java:1648)
> at org.apache.phoenix.jdbc.PhoenixStatement.compileQuery(PhoenixStatement.java:1641)
> at org.apache.phoenix.jdbc.PhoenixStatement.optimizeQuery(PhoenixStatement.java:1635)
> at org.apache.phoenix.hive.mapreduce.PhoenixInputFormat.getQueryPlan(PhoenixInputFormat.java:260)
> ... 13 more
> {panel}
> {noformat}
> : jdbc:phoenix:juke-cdh2> !columns phoenix.movies
> +------------+--------------+-------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+-------------+
> | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME | COLUMN_SIZE | BUFFER_LENGTH | DECIMAL_DIGITS | NUM_PREC_RADIX | NULLABLE | REMARKS | COLUMN_DEF |
> +------------+--------------+-------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+-------------+
> | | PHOENIX | MOVIES | MOVIE_ID | 4 | INTEGER | null | null | null | null | 0 | | |
> | | PHOENIX | MOVIES | TITLE | 12 | VARCHAR | null | null | null | null | 1 | | |
> | | PHOENIX | MOVIES | GENRES | 12 | VARCHAR | null | null | null | null | 1 | | |
> +------------+--------------+-------------+--------------+------------+------------+--------------+----------------+-----------------+-----------------+-----------+----------+-------------+
> {noformat}
> {noformat}
> hive> show create table movies;
> CREATE EXTERNAL TABLE `movies`(
> `movie_id` int COMMENT 'from deserializer',
> `title` string COMMENT 'from deserializer',
> `genres` string COMMENT 'from deserializer')
> ROW FORMAT SERDE
> 'org.apache.phoenix.hive.PhoenixSerDe'
> STORED BY
> 'org.apache.phoenix.hive.PhoenixStorageHandler'
> WITH SERDEPROPERTIES (
> 'serialization.format'='1')
> LOCATION
> 'hdfs://nameservice1/user/hive/warehouse/movies'
> TBLPROPERTIES (
> 'COLUMN_STATS_ACCURATE'='false',
> 'numFiles'='0',
> 'numRows'='-1',
> 'phoenix.table.name'='phoenix.movies',
> 'phoenix.zookeeper.quorum'='xxx',
> 'rawDataSize'='-1',
> 'totalSize'='0',
> 'transient_lastDdlTime'='1503021635')
> {noformat}
> I ran the query "select * from phoenix.movies" and
> The query created by the phoenix handler is:
> select /*+ NO_CACHE */ "movie_id","title","genres" from phoenix.movies
> But do not enter double quotes like this.
> I looked up where to put double quotes.
> !PhoenixQueryBuilder-getSelectColumns.jpg|thumbnail!
> !PhoenixQueryBuilder-buildExpressionStringFrom.jpg|thumbnail!
> Why did you change it to double quotes?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)