如何使用impala读取包含复杂类型的配置单元视图?

ccrfmcuu  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(246)

我有一些数据,是处理和模型的基础上 case class 类也可以有其他 case class 所以最后的表有复杂的数据, struct , array . 使用case类,我使用 dataframe.saveAsTextFile(path) .
这些数据有时会更改或需要有不同的模型,因此对于每个迭代,我在表名中使用一个后缀(一些\数据\ v01,一些\数据\ v03,等等)。
我还使用impala在这些表上按计划运行查询,因此为了避免每次保存新表时都修改查询,我希望使用在更改模型时始终更新的视图。
问题是我不能用 Impala 来创造 view ,因为表中数据的复杂性(嵌套的复杂类型)。除了需要大量工作来扩展复杂类型之外,我还希望保留这些类型(大量嵌套级别,在加入数组时复制数据)。
一种解决方案是使用hive创建视图,如下所示

create view some_data as select * from some_data_v01;

但如果我这么做了,当我想用 Impala 的table时,

select * from some_data;

或者一些简单的事情,比如

select some_value_not_nested, struct_type.some_int, struct_type.some_other_int from some_data;

错误如下:
analysisexception:选择列表中的expr'some\ data\ v01.struct\ type'返回复杂类型'struct<some'_int:int,其他一些_int:int,嵌套_struct:struct<嵌套_int:int,其他_int:int>,最后一个_int:int>'. 选择列表中只允许使用标量类型。
是否有任何方法可以访问此视图,或以其他方式创建它以使其工作?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题