1 个平面文件,不同的模式取决于值
1 flatfile, different schema depending on a value
如果我有一个平面文件,并且列数随输入字段而变化,
例如:
A,0,00,01,亚历克斯
B,2,h
A,2,22,02,保罗
C,99
所以在这里
A 有 4 个字段(id、number、rank、name)
B有2个字段(体重,身高)
同样对于 C.
现在存储这些数据的最佳方式是什么(Hive 或 Hbase)。因为我需要查询数据以进行分析。也让我知道最好的方法吗?
是否也可以根据第一个字段的输入创建 Avro 架构?请帮忙..
如果您只有一个文件,Hive 无法查询具有更改架构的多行
您可以使用 Hive 做的最好的事情是为标签的最大宽度定义每一列,然后 "empty columns" 的其余部分将为 NULL。它可以工作,但是当您查询时它看起来不干净。
我对Hbase不熟悉,抱歉。
对于Avro,一个avro文件只能有一个模式。因此,像 Hive 一样,您需要为没有列的行定义每个字段和默认值
就个人而言,我使用 Pig 或 Spark 来过滤您的标签,将它们写入不同的文件,然后使用它们创建 Hive(或可能是 Hbase)表。假设您实际上需要一个持久查询层,而不是简单地处理来自原始文件的 Spark 中的所有数据
您可以为交互式查询公开 Spark Thriftserver
如果我有一个平面文件,并且列数随输入字段而变化,
例如:
A,0,00,01,亚历克斯
B,2,h
A,2,22,02,保罗
C,99
所以在这里 A 有 4 个字段(id、number、rank、name) B有2个字段(体重,身高) 同样对于 C.
现在存储这些数据的最佳方式是什么(Hive 或 Hbase)。因为我需要查询数据以进行分析。也让我知道最好的方法吗?
是否也可以根据第一个字段的输入创建 Avro 架构?请帮忙..
如果您只有一个文件,Hive 无法查询具有更改架构的多行
您可以使用 Hive 做的最好的事情是为标签的最大宽度定义每一列,然后 "empty columns" 的其余部分将为 NULL。它可以工作,但是当您查询时它看起来不干净。
我对Hbase不熟悉,抱歉。
对于Avro,一个avro文件只能有一个模式。因此,像 Hive 一样,您需要为没有列的行定义每个字段和默认值
就个人而言,我使用 Pig 或 Spark 来过滤您的标签,将它们写入不同的文件,然后使用它们创建 Hive(或可能是 Hbase)表。假设您实际上需要一个持久查询层,而不是简单地处理来自原始文件的 Spark 中的所有数据
您可以为交互式查询公开 Spark Thriftserver