我正在尝试在impala表中填充复杂的数据结构-数组数据类型,目前我正在使用cdh5.5,真的不知道如何用一些数据填充列。例如:
create table arrstructex( name string, array< struct< id:string, passcode:string, isprevileged:boolean > > )
qmelpv7a1#
我把你的问题格式化了一点以便我能读出来。我认为有一个语法错误:数组需要有一个名称。也有可能sql解析器在字符前需要一个空格。我建议你养成习惯,使用大写的sql关键字,并缩进。下面的例子
CREATE TABLE array_struct_example ( name STRING , credentials ARRAY < STRUCT < id: STRING , passcode: STRING , is_privileged: BOOLEAN >> )
我加了名字 credentials 还纠正了拼写错误。
credentials
rbl8hiat2#
insert语句当前不支持写入包含复杂类型(数组、结构和Map)的数据文件。要为此类表准备Parquet数据,请在impala外部生成数据文件,然后使用load data或create external table将这些数据文件与表关联。目前,此类表必须使用Parquet文件格式。有关insert语句,请参阅文档:cloudera\u 5.15\u insert
2条答案
按热度按时间qmelpv7a1#
我把你的问题格式化了一点以便我能读出来。我认为有一个语法错误:数组需要有一个名称。也有可能sql解析器在字符前需要一个空格。
我建议你养成习惯,使用大写的sql关键字,并缩进。下面的例子
我加了名字
credentials
还纠正了拼写错误。rbl8hiat2#
insert语句当前不支持写入包含复杂类型(数组、结构和Map)的数据文件。要为此类表准备Parquet数据,请在impala外部生成数据文件,然后使用load data或create external table将这些数据文件与表关联。目前,此类表必须使用Parquet文件格式。
有关insert语句,请参阅文档:cloudera\u 5.15\u insert