Hbase Apache Phoenix Create语句作为select(from)

Hbase Apache Phoenix Create语句作为select(from),hbase,phoenix,Hbase,Phoenix,我正在尝试从Phoenix中的现有结构创建一个新表。Phoenix中是否有CREATE as Select语句。我正在努力,但他们失败了,只有以下例外 欢迎提出任何建议。提前谢谢 CREATE TABLE TEST AS (SELECT * FROM TEST_2 WHERE 1 =2); org.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Encountered &quo

我正在尝试从Phoenix中的现有结构创建一个新表。Phoenix中是否有CREATE as Select语句。我正在努力,但他们失败了,只有以下例外

欢迎提出任何建议。提前谢谢

 CREATE TABLE TEST AS (SELECT * FROM TEST_2 WHERE 1 =2);

org.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Encountered "AS" at line 1, column 14.
        at org.apache.phoenix.exception.PhoenixParserException.newException(PhoenixParserException.java:33)
        at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:111)
        at org.apache.phoenix.jdbc.PhoenixStatement$PhoenixStatementParser.parseStatement(PhoenixStatement.java:1280)
        at org.apache.phoenix.jdbc.PhoenixStatement.parseStatement(PhoenixStatement.java:1363)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1434)
        at sqlline.Commands.execute(Commands.java:822)
        at sqlline.Commands.sql(Commands.java:732)
        at sqlline.SqlLine.dispatch(SqlLine.java:808)
        at sqlline.SqlLine.begin(SqlLine.java:681)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:292)
Caused by: NoViableAltException(11@[])
        at org.apache.phoenix.parse.PhoenixSQLParser.from_table_name(PhoenixSQLParser.java:9564)
        at org.apache.phoenix.parse.PhoenixSQLParser.create_table_node(PhoenixSQLParser.java:1096)
        at org.apache.phoenix.parse.PhoenixSQLParser.oneStatement(PhoenixSQLParser.java:816)
        at org.apache.phoenix.parse.PhoenixSQLParser.statement(PhoenixSQLParser.java:508)
        at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:108)
        ... 9 more
CREATE TEST  (SELECT * FROM TEST_2 WHERE 1=2);
org.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Encountered "SELECT" at line 1, column 34.
        at org.apache.phoenix.exception.PhoenixParserException.newException(PhoenixParserException.java:33)
        at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:111)
        at org.apache.phoenix.jdbc.PhoenixStatement$PhoenixStatementParser.parseStatement(PhoenixStatement.java:1280)
        at org.apache.phoenix.jdbc.PhoenixStatement.parseStatement(PhoenixStatement.java:1363)
        at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1434)
        at sqlline.Commands.execute(Commands.java:822)
        at sqlline.Commands.sql(Commands.java:732)
        at sqlline.SqlLine.dispatch(SqlLine.java:808)
        at sqlline.SqlLine.begin(SqlLine.java:681)
        at sqlline.SqlLine.start(SqlLine.java:398)
        at sqlline.SqlLine.main(SqlLine.java:292)
Caused by: NoViableAltException(133@[])
        at org.apache.phoenix.parse.PhoenixSQLParser.column_name(PhoenixSQLParser.java:2553)
        at org.apache.phoenix.parse.PhoenixSQLParser.column_def(PhoenixSQLParser.java:3934)
        at org.apache.phoenix.parse.PhoenixSQLParser.column_defs(PhoenixSQLParser.java:3858)
        at org.apache.phoenix.parse.PhoenixSQLParser.create_table_node(PhoenixSQLParser.java:1104)
        at org.apache.phoenix.parse.PhoenixSQLParser.oneStatement(PhoenixSQLParser.java:816)
        at org.apache.phoenix.parse.PhoenixSQLParser.statement(PhoenixSQLParser.java:508)
        at org.apache.phoenix.parse.SQLParser.parseStatement(SQLParser.java:108)

你不能在凤凰城这样做

相反,您需要首先创建一个现有Hbase/Phoenix表的视图,在您的情况下,该表是“
test_2

所以你可以这样做:

CREATE VIEW test_view (a VARCHAR, b VARCHAR) AS
SELECT * FROM test_2
WHERE 1 = 2 ;  // some condition
有关更多信息,请参阅此处: