1个平面文件,取决于值的不同架构

时间:2018-08-23 05:36:20

标签: hadoop avro

如果我只有一个平面文件,并且列数随输入字段而变化,

例如:

A,0,00,01,Alex

B,2,h

A,2,22,02,保罗

C,99

所以这里 A有4个字段(id,number,rank,name) B有2个字段(体重,身高) 对于C同样如此。

现在什么是存储此数据的最佳方法(Hive或Hbase)。因为我需要查询数据以进行分析。还让我知道最好的方法吗?

还可以根据第一个字段的输入来创建Avro模式吗?请帮忙。

1 个答案:

答案 0 :(得分:0)

如果您只有一个文件,则Hive无法查询具有更改架构的多行

使用Hive最好的办法是为标签的最大宽度定义每一列,然后其余的“空列”将为NULL。它可以工作,但查询时看起来并不干净。

抱歉,我不熟悉Hbase。

至于Avro,一个avro文件只能具有一个架构。因此,像Hive一样,您需要为没有列的行定义每个字段和默认值

我个人使用Pig或Spark来过滤您的标签,将它们写入不同的文件,然后使用它们创建Hive(或可能的Hbase)表。假设您实际上需要一个持久的查询层,而不是简单地处理原始文件中Spark中的所有数据

您可以公开Spark Thriftserver进行交互式查询