如何在impala中插入数组< struct>值?

yizd12fk  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(505)

我正在尝试在impala表中填充复杂的数据结构-数组数据类型,目前我正在使用cdh5.5,真的不知道如何用一些数据填充列。例如:

create table arrstructex(
  name string,
  array< 
    struct<
      id:string,
      passcode:string,
      isprevileged:boolean
    >
  >
)
qmelpv7a

qmelpv7a1#

我把你的问题格式化了一点以便我能读出来。我认为有一个语法错误:数组需要有一个名称。也有可能sql解析器在字符前需要一个空格。
我建议你养成习惯,使用大写的sql关键字,并缩进。下面的例子

CREATE TABLE array_struct_example
(
  name STRING
  , credentials ARRAY < STRUCT <
      id: STRING
    , passcode: STRING
    , is_privileged: BOOLEAN
  >>
)

我加了名字 credentials 还纠正了拼写错误。

rbl8hiat

rbl8hiat2#

insert语句当前不支持写入包含复杂类型(数组、结构和Map)的数据文件。要为此类表准备Parquet数据,请在impala外部生成数据文件,然后使用load data或create external table将这些数据文件与表关联。目前,此类表必须使用Parquet文件格式。
有关insert语句,请参阅文档:cloudera\u 5.15\u insert

相关问题