Databricks中未获取预期二进制值问题咨询
Databricks中BINARY类型显示为Base64的原因
这是Databricks(底层基于Spark)针对二进制类型的默认显示规则导致的:
- Spark在UI或Notebook中展示BINARY类型数据时,会自动将原始二进制字节编码为Base64字符串,目的是在文本界面中友好呈现不可打印的二进制内容(比如
0x01属于ASCII控制字符,直接显示会出现乱码或空白)。 - 你插入的
X'1'对应原始二进制是单字节0x01,这个字节的Base64编码结果就是AQ==(Base64编码规则中,不足3字节的内容会补填充符==)。
需要明确的是,这只是显示层面的转换,表中实际存储的还是原始的二进制数据0x01,并未被修改。你可以通过以下方式验证:
- 执行SQL语句
SELECT TO_HEX(binary_col) FROM binary;,会返回预期的01; - 通过代码读取该字段时,获取到的是原始二进制字节数组,而非Base64字符串。
内容的提问来源于stack exchange,提问作者hima sai
相关产品推荐
相关产品推荐

