【问题标题】:HBase: creating a hbase table with multiple columns in a column familyHBase:在列族中创建具有多个列的 hbase 表
【发布时间】:2017-12-20 19:44:00
【问题描述】:

我第一次创建 HBase 表时,我希望通过以下方式创建具有多列的表(我知道以下方式在寻找类似方式时不起作用)..

create 'table_name','col_family:column1','col_family:column2'

这可能吗?除了使用 put 命令和动态添加列到列族之外还有其他方法吗??

【问题讨论】:

  • 为什么要在Put前面加一列? HBase 是无模式的,因此违反了它的逻辑。
  • 实际上我只需要创建一个 hbase 表,其中包含 colum_famliy 和列,然后将指向一个 hive 表。我的 pyspark 代码插入到 hive 表中,内部记录将插入到 hbase 表中..
  • 在 Hive 中指定架构还不够吗?
  • 如果我这样做,hive 会抛出一个错误。因为列族中不会有任何列,在创建 hbase 表时,如果想要列族,我必须使用“put”,但是,我的要求是在创建表时添加列,而不是使用“put”。有可能吗??

标签: hbase


【解决方案1】:

这是不可能的。只有在插入值时才会给出列族下的列名。如果您想将列添加到 CF,请尝试以下操作。

put 'table_name', 'rowid','cf1:col1','Associate'
put 'table_name', 'rowid','cf1:col2','Hbase'

put 'table_name', 'rowid2','cf1:col1','PA'
put 'table_name', 'rowid2','cf1:col2','Hbase ,Hadoop'
put 'table_name', 'rowid2','cf1:col3','1'

对于 CF1 列族 col3 列值为空。

【讨论】:

    【解决方案2】:

    我认为这是违反 HBase 逻辑的,这是不可能的。我浏览了文档并没有找到任何解决方案。据我了解,列族是元数据,但列限定符可能包含类似于单元格值的数据。因此,如果您没有数据,则没有列限定符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      相关资源
      最近更新 更多