我有一个场景,想获得专家的意见。
我必须通过 spark (python) 从关系数据库的分区中加载 Hive 表。我无法创建配置单元表,因为我不确定源中有多少列并且它们将来可能会改变,所以我必须通过使用来获取数据;select * from tablename
.
但是,我确信分区列并且知道这不会改变。此列是源数据库中的“日期”数据类型。
我正在使用SaveAsTable
选项partitionBy
,并且能够根据分区列正确创建文件夹。蜂巢表也正在创建中。
我面临的问题是,由于分区列是“日期”数据类型,并且分区的配置单元不支持相同的列。因此,我无法通过 hive 或 impala 查询读取数据,因为它说不支持日期作为分区列。
请注意,我不能在发布select
声明时对列进行类型转换,因为我必须做 a select * from tablename
,而不是select a,b,cast(c) as varchar from table
。