如果我有一个平面文件,并且列数随输入字段的变化而变化,如:a、 0,00,01,亚历克斯b、 2,小时a、 2,22,02,保罗c、 99个所以这里a有4个字段(id,number,rank,name),b有2个字段(weight,height),类似于c。现在,存储此数据的最佳方式是什么(hive或hbase)。因为我需要查询数据进行分析。也让我知道最好的方法吗?还可以根据第一个字段的输入创建avro模式吗?请帮忙。。
cl25kdpy1#
如果只有一个文件,则配置单元无法查询具有更改架构的多个行使用hive所能做的最好的事情就是为标签的最大宽度定义每一列,然后其余的“空列”将为null。它可以工作,但当你查询时它看起来不干净。对不起,我不熟悉hbase。对于avro,一个avro文件只能有一个模式。因此,与hive一样,需要为没有列的行定义每个字段和默认值就我个人而言,我使用pig或spark过滤标签,将它们写入不同的文件,然后用它们创建hive(或hbase)表。假设您实际上需要一个持久查询层,而不是简单地处理来自原始文件的所有数据您可以公开spark thriftserver以进行交互式查询
1条答案
按热度按时间cl25kdpy1#
如果只有一个文件,则配置单元无法查询具有更改架构的多个行
使用hive所能做的最好的事情就是为标签的最大宽度定义每一列,然后其余的“空列”将为null。它可以工作,但当你查询时它看起来不干净。
对不起,我不熟悉hbase。
对于avro,一个avro文件只能有一个模式。因此,与hive一样,需要为没有列的行定义每个字段和默认值
就我个人而言,我使用pig或spark过滤标签,将它们写入不同的文件,然后用它们创建hive(或hbase)表。假设您实际上需要一个持久查询层,而不是简单地处理来自原始文件的所有数据
您可以公开spark thriftserver以进行交互式查询