try_to_binary:安全二进制转换
速查结论
try_to_binary(str[, fmt]) 是 Spark SQL 中用于将字符串转换为二进制,转换失败时返回 NULL 而非报错的字符串函数。
语法
try_to_binary(str[, fmt])
参数说明
| 参数 | 说明 |
|---|---|
str | 需要转换为二进制的输入字符串 |
fmt | 可选,指定输入字符串的编码格式,如 'utf-8'、'base64'、'hex' 等 |
功能说明
try_to_binary(str[, fmt]) 是 to_binary 的安全版本,执行相同的字符串到二进制转换操作。区别在于:当转换无法执行时(如使用了无效的编码格式或不匹配的输入),返回 NULL 值而不是抛出错误。
示例
> SELECT try_to_binary('abc', 'utf-8');
abc
> select try_to_binary('a!', 'base64');
NULL
> select try_to_binary('abc', 'invalidFormat');
NULL
常见报错与避坑指南
- 无效格式返回 NULL:当指定的编码格式无效(如
'invalidFormat')时,try_to_binary返回 NULL 而不会报错。 - 输入不匹配返回 NULL:当输入字符串与指定格式不兼容时返回 NULL。例如
'a!'不是有效的 base64 编码。 - 与 to_binary 的区别:
to_binary在转换失败时会抛出异常;try_to_binary则优雅地返回 NULL。处理不确定格式的输入数据时优先使用try_to_binary。
Since: 3.3.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
