我的要求是将一个嵌套实体(POJO对象数组)从Java编写到Hbase,并将它们作为Hive中的单个记录读取。
(i,e)从Java编写时,它只是一个字符串(Array)。但是从hive来看,数组代表了整个表格。因此,配置单元应该将数组的各个元素作为其中的单个记录。
对此有任何帮助将不胜感激。
谢谢, GK
答案 0 :(得分:0)
也许您应该看一下Hive UDTF functions explode
,这取决于您存储的内容以及您需要检索的内容,它们可能适合您,但请注意它们有一些重要的限制:
- 不支持SELECT
SELECT pageid, explode(adid_list) AS myCol...
中不允许使用其他表达式- UDTF无法嵌套
SELECT explode(explode(adid_list)) AS myCol...
不受支持- 不支持GROUP BY / CLUSTER BY / DISTRIBUTE BY / SORT BY
SELECT explode(adid_list) AS myCol ... GROUP BY myCol
不是 支持的
如果标准UDTF不适合你的情况并且你心情愉快,你也可以这样做:
恕我直言,我只是在数组的每个元素上写一行,将每个数组项的索引附加到rowkey,处理数据时会更快,并且你会有更少的麻烦。如果是这样的话,你不应该担心写入数十亿行。