提问人:vvazza 提问时间:11/11/2023 更新时间:11/11/2023 访问量:36
在 Glue 表上创建 presto 视图导致错误,数据类型无效:整数
Creating a presto view on Glue table causing an error with invalid data type: integer
问:
我在 Glue 目录table_a中有一个表,它有 2 列 -
列 | 数据类型 |
---|---|
emp_id | bigint |
emp_name | 字符串 |
年龄 | int |
我正在尝试创建一个 presto 视图来查询 Athena 上的数据。
create or replace view view_a
as
select emp_id, age
from table_a
当我查询表时,出现以下错误:
HIVE_INVALID_METADATA: Glue table table_a column 'age' has invalid data type:integer
请告诉我我在这里做错了什么。
答:
0赞
Adrian Maxwell
11/11/2023
#1
该列可能包含的值不能是整数。建议运行这样的查询来查找 NULL 或非整数值。age
SELECT emp_id, age,
CASE
WHEN age IS NULL THEN 'Null Value'
WHEN CAST(age AS STRING) REGEXP '^[0-9]+$' THEN 'Integer'
ELSE 'Non-Integer'
END as age_type
FROM table_a
WHERE age IS NULL OR CAST(age AS STRING) REGEXP '^[^0-9]+$'
评论
0赞
vvazza
11/11/2023
感谢您的回复。该表确实具有空字符串值,我尝试从表中删除这些值并重新创建视图。我仍然遇到同样的错误。
评论
int