Ada*_*rsh 5 hadoop hive bigdata hiveql parquet
我曾尝试将表中的现有列重命名为新列。但是在名称更改后,新列只给我 'NULL' 值。
Parquet 中表的存储格式。
例如,
'user' 是字符串数据类型的 'Test' 表中的一列。插入了一个值为“John”的样本记录。
Select user from Test;
Run Code Online (Sandbox Code Playgroud)
结果:约翰
我已将 'user' 重命名为 'user_name' 而不更改任何数据类型。
ALTER TABLE Test CHANGE user user_name String;
Select user_name from Test;
Run Code Online (Sandbox Code Playgroud)
结果:空
请让我知道如何解决这个问题?
在这种情况下,MSCK 修复表命令是否有用?
我是否需要再次重新加载此表来解决此问题?
问候, 阿达什 KS
小智 -1
您可以做的是添加新字段,执行一次插入覆盖,然后删除旧字段。像这样的东西:
ALTER TABLE temp.Test ADD COLUMNS (user_new string) CASCADE;
Run Code Online (Sandbox Code Playgroud)
insert overwrite table temp.Test
select
user_a,
a,
b,
c,
user_a as user_new
from temp.test;
Run Code Online (Sandbox Code Playgroud)
ALTER TABLE temp.test REPLACE COLUMNS(user_new string, a string, b string, c string );
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3056 次 |
最近记录: |