Hbase java.lang.IllegalArgumentException:在Apache Phoenix中通过PSQL插入数据时未找到表My_表

Hbase java.lang.IllegalArgumentException:在Apache Phoenix中通过PSQL插入数据时未找到表My_表,hbase,phoenix,Hbase,Phoenix,我正在通过ApachePhoenix中的PSQL(PSQL.py)加载批量数据,但出于某种原因,我遇到了以下错误: java.lang.IllegalArgumentException: Table "My_Table" not found at org.apache.phoenix.util.SchemaUtil.generateColumnInfo(SchemaUtil.java:887) at org.apache.phoenix.util.CSVCommonsLoader.buildCo

我正在通过ApachePhoenix中的PSQL(PSQL.py)加载批量数据,但出于某种原因,我遇到了以下错误:

java.lang.IllegalArgumentException: Table "My_Table" not found
at org.apache.phoenix.util.SchemaUtil.generateColumnInfo(SchemaUtil.java:887)
at org.apache.phoenix.util.CSVCommonsLoader.buildColumnInfoList(CSVCommonsLoader.java:259)
at org.apache.phoenix.util.CSVCommonsLoader.upsert(CSVCommonsLoader.java:206)
at org.apache.phoenix.util.CSVCommonsLoader.upsert(CSVCommonsLoader.java:182)
at org.apache.phoenix.util.PhoenixRuntime.main(PhoenixRuntime.java:273)
根据凤凰城教程,我需要有3个文件
my_table.sql
my_table.csv
my_table.sql

并启动以下命令:

 ./psql.py <your_zookeeper_quorum> my_table.sql my_table.csv my_table_queries.sql
my_table.csv

 1,Martha
 2,Scott
 3,David
 4,Alex
 5,Vicky
my_table_querys.sql

 SELECT id as "ID's", username as "User Name"
 FROM "some_namespace:my_table"
 GROUP BY id
 ORDER BY count(username) DESC;

当我通过sqlline.py访问Phoenix时,表就在那里,但根本没有数据。我应该先创建表还是以其他方式创建表?

在Phoenix中,表名似乎区分大小写。由于在创建表时已经包含了双引号,所以在运行批量加载作业时只需传递相同的双引号

my_table.sql

 CREATE TABLE IF NOT EXISTS "some_namespace:my_table" (id BIGINT NOT NULL, username VARCHAR NOT NULL, CONSTRAINT my_pk PRIMARY KEY (id, username));
 CREATE TABLE IF NOT EXISTS "MY_TABLE" (id BIGINT NOT NULL, username VARCHAR NOT NULL, CONSTRAINT my_pk PRIMARY KEY (id, username));
my_table_querys.sql:

 SELECT id as "ID's", username as "User Name"
 FROM "MY_TABLE"
 GROUP BY id
 ORDER BY count(username) DESC;
已经有报道说:

您还可以查看有关区分大小写的说明


现在,如果您想使用.csv文件将批量数据加载到HBASE中,您可以尝试以下操作:

创建表
中的某些命名空间:我的表
中的
部分命名空间:我的表
不匹配。命名空间与spacename不同。这是一个输入错误,我已经纠正了它,问题仍然存在,然后你的问题,并通过复制/粘贴它来包含实际代码,而不是在你可以引入其他问题的地方键入它。如果您需要代码方面的帮助,请发布您的实际代码。这在某种程度上是有意义的,但错误仍然存在,问题是,我只能在名称空间下创建表,出于安全考虑,并且名称空间是固定的。我不能做类似于
“some\u namespace:MY\u TABLE”
的事情,因为它不起作用,所以我不知道还能做什么。