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:16:00 UTC

[jira] [Created] (PHOENIX-4222) PhoenixStorageHandler for Hive is not working

JeongMin Ju created PHOENIX-4222:
------------------------------------

             Summary: 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


{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)