Hadoop 1个平面文件,不同的模式取决于值

Hadoop 1个平面文件,不同的模式取决于值,hadoop,avro,Hadoop,Avro,如果我有一个平面文件,列数随输入字段的变化而变化 例如: A、 0,00,01,亚历克斯 B、 2,h A、 2,22,02,保罗 C、 九十九 所以这里 A有4个字段(id、编号、等级、名称) B有2个字段(重量、高度) C也是如此 现在,存储此数据的最佳方式是什么(Hive或Hbase)。因为我需要查询数据进行分析。还让我知道最好的方法吗 还可以根据第一个字段的输入创建Avro模式吗?请提供帮助。如果您只有一个文件,配置单元无法查询具有更改架构的多行 使用配置单元所能做的最好的事情就是为标签

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

例如:

A、 0,00,01,亚历克斯

B、 2,h

A、 2,22,02,保罗

C、 九十九

所以这里 A有4个字段(id、编号、等级、名称) B有2个字段(重量、高度) C也是如此

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


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

如果您只有一个文件,配置单元无法查询具有更改架构的多行

使用配置单元所能做的最好的事情就是为标签的最大宽度定义每一列,然后其余的“空列”将为NULL。它可以工作,但当你查询时它看起来不干净

对不起,我不熟悉Hbase

对于Avro,一个Avro文件只能有一个模式。因此,与配置单元一样,您需要为没有列的行定义每个字段和默认值

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

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