【问题标题】:BigTable - Can you store boolean values?BigTable - 你能存储布尔值吗?
【发布时间】:2019-01-17 09:12:51
【问题描述】:

是否可以存储布尔值?

我尝试在 BigTable 中存储一个 True 值,并收到错误消息:

TypeError: True 无法转换为字节

查看GitHub中的代码,使用了函数_to_bytes,如果不能转换为字节则会抛出错误。

是否有推荐的存储布尔数据的方法?还是我应该只转换 True/False,然后记住在检索数据时将值转换回布尔值?

【问题讨论】:

    标签: google-cloud-bigtable


    【解决方案1】:

    这就是 HBase 将布尔值转换为 Bytes.java 中的字节的方式:

      public static byte [] toBytes(final boolean b) {
        return new byte[] { b ? (byte) -1 : (byte) 0 };
      }
    

    Java cloud-bigtable-client 鼓励 Java 用户使用该类将原语转换为值。其他库中可能应该有一个类似的类来帮助鼓励常见的转换。

    【讨论】:

      【解决方案2】:

      您不能使用 Python 在 BigTable 中存储布尔类型。

      这是documentation 所说的关于可以存储在 BigTable 中的数据类型:

      Cloud Bigtable 在大多数情况下将所有数据视为原始字节字符串

      因此,正如您所说,您拥有的最佳选择似乎是将“真/假”转换为字符串,并在获得数据时将数据转换回布尔值。

      【讨论】:

      • 谢谢!和我想的一样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2015-05-08
      • 2012-03-10
      • 1970-01-01
      • 2022-11-26
      • 2021-12-04
      相关资源
      最近更新 更多