创建名称中包含字符的配置单元表

hgqdbh6s  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(524)

我正在尝试在配置单元中创建一个名为“$example$table”的表。它不允许我创建,并且出现以下错误:
失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1。org.apache.hadoop.hive.ql.metadata.hiveexception:[$ndo$dbproperty]:不是有效的表名
有人能帮帮我吗?要求创建表名,表名中包含$、%、'、'等字符。

l0oc07j2

l0oc07j21#

目前,特殊字符只支持列,不支持表。
https://issues.apache.org/jira/browse/hive-6013
https://issues.apache.org/jira/browse/hive-11699
p、 第1节
如果您足够勇敢,可以在metastore中重命名表。

select * from metastore.TBLS where TBL_NAME = '$example$table';

+--------+-------------+-------+------------------+----------+-----------+-------+----------------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME |  OWNER   | RETENTION | SD_ID |    TBL_NAME    |   TBL_TYPE    | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+----------+-----------+-------+----------------+---------------+--------------------+--------------------+
|    176 |  1494511100 |     2 |                0 | cloudera |         0 |   181 | $example$table | MANAGED_TABLE | (null)             | (null)             |
+--------+-------------+-------+------------------+----------+-----------+-------+----------------+---------------+--------------------+--------------------+
hive> select * from `$example$table`;
OK
1
2
3
Time taken: 0.58 seconds, Fetched: 3 row(s)
hive>

p、 第2节
你可能想看“是的(首相)”,以便更好地理解“勇敢”这个词

相关问题