gpt4 book ai didi

hadoop - 将嵌套实体存储在 Hbase 中并将其作为配置单元中的行读取

转载 作者:可可西里 更新时间:2023-11-01 16:11:20 26 4
gpt4 key购买 nike

我的要求是将嵌套实体(POJO 对象数组)从 Java 写入 Hbase,并在 Hive 中将它们作为单独的记录读取。

(i,e) 从 Java 编写时,它只是一个字符串(数组)。但是从配置单元来看,数组代表了整个表。因此,配置单元应该将数组的单个元素作为其中的单个记录。

我们将不胜感激。

谢谢,GK

最佳答案

也许你应该看看 Hive UDTF functionsexplode,根据你存储的内容和需要检索的内容,它们可能对你有用,但请注意它们有一些重要的限制:

  • No other expressions are allowed in SELECT SELECT pageid, explode(adid_list) AS myCol... is not supported
  • UDTF's can't be nested SELECT explode(explode(adid_list)) AS myCol... is not supported
  • GROUP BY / CLUSTER BY / DISTRIBUTE BY / SORT BY is not supported SELECT explode(adid_list) AS myCol ... GROUP BY myCol is not supported

如果标准 UDTF 不适合您的情况并且您有心情,您也可以这样做:

  1. 将数组的每一项作为 json 字符串存储在不同的列中:i0、i1、i2 ... iN
  2. Write your own UDTF function处理每一行列并每列发出 1 行。

恕我直言,我将只为数组的每个元素写一行,将每个数组项的索引附加到行键,这样处理数据时会更快,而且你会少很多头痛。如果是这种情况,您不必担心写入数十亿行。

关于hadoop - 将嵌套实体存储在 Hbase 中并将其作为配置单元中的行读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30179981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com