如何在Athena SQL查询中忽略行解析错误
解决Athena查询因日期格式错误崩溃的问题
可以直接在SQL中跳过解析失败的行,Athena提供的try_parse_datetime函数就能处理这种场景:
try_parse_datetime和parse_datetime功能一致,但遇到不符合指定格式的字符串时不会抛出错误,而是返回null。利用这一点,我们可以自动过滤掉解析失败的行,修改后的查询如下:
Select code from tsummary where try_parse_datetime(checkdate, 'yyyyMMdd') <= current_date
补充说明
- 格式错误的
checkdate会被解析为null,而null与current_date比较时结果为false,因此这些行不会被包含在查询结果中,同时也不会导致查询崩溃。 - 如果需要更明确地筛选出解析成功的行,或者避免重复解析函数调用,可以用CTE优化:
WITH valid_dates AS ( SELECT code, try_parse_datetime(checkdate, 'yyyyMMdd') AS parsed_date FROM tsummary ) SELECT code FROM valid_dates WHERE parsed_date IS NOT NULL AND parsed_date <= current_date
内容的提问来源于stack exchange,提问作者Muds
相关产品推荐
相关产品推荐

