尝试使用以下内容在Hive表上创建分区:
> alter table stock_ticker add if not exists
> partition(stock_symbol='ASP')
> location 'data/stock_ticker_sample/stock_symbol=ASP/'
Run Code Online (Sandbox Code Playgroud)
这产生以下输出
FAILED : SemanticException table is not partitioned but partition spec exists: {stock_symbol=ASP}
Run Code Online (Sandbox Code Playgroud)
在此添加尝试之前,此表上没有分区
> show partitions stock_ticker;
Run Code Online (Sandbox Code Playgroud)
结果
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
Table stock_ticker_sample is not a partitioned table
Run Code Online (Sandbox Code Playgroud)
毫无疑问,stock_symbol列存在且类型为string.
查询是为了添加此分区需要采取的步骤?
解决方案是将分区信息添加到stock_ticker表的定义中:
CREATE EXTERNAL TABLE stock_ticker (
...
)
PARTITIONED BY (stock_symbol STRING);
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过以下方式将外部数据添加到表中
> alter table stock_ticker add if not exists
> partition(stock_symbol='ASP')
> location 'data/stock_ticker_sample/stock_symbol=ASP/'
Run Code Online (Sandbox Code Playgroud)
GL!
| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |