Amazon athena REGEXP\u提取函数的问题

Amazon athena REGEXP\u提取函数的问题,amazon-athena,presto,Amazon Athena,Presto,我在表中存储了一个字段,如下所示: id (array<struct<peopleidl:string,householdidl:string>>) 我试图使用REGEXP\u EXTRACT函数捕获=符号和,之间的所有内容,因此新字段将只是Xi3020rmDOhU2iWYUu3AXytMOggv6jdRK8\u xyzy\u coup1vd3uuu0-OcWz4C3vW-ew9IeZEN 但当我尝试时: REGEXP_EXTRACT(idls, '=(.+),') A

我在表中存储了一个字段,如下所示:

id (array<struct<peopleidl:string,householdidl:string>>)
我试图使用
REGEXP\u EXTRACT
函数捕获
=
符号和
之间的所有内容,因此新字段将只是
Xi3020rmDOhU2iWYUu3AXytMOggv6jdRK8\u xyzy\u coup1vd3uuu0-OcWz4C3vW-ew9IeZEN

但当我尝试时:

REGEXP_EXTRACT(idls, '=(.+),') AS id
鉴于我在这里测试的内容,正则表达式部分应该是正确的:

但是,当我运行查询时,遇到以下错误:

语法错误:第1:8行:意外参数(数组(行)(peopleidl varchar,householdidl varchar)),varchar(6),integer)表示函数 regexp\u摘录。预期:regexp_extract(varchar(x)、JoniRegExp、, bigint),regexp_extract(varchar(x),JoniRegExp)


有人知道我如何才能完成我需要的吗?

老实说,我不知道为什么要使用regexp函数来检索数据。您应该使用点表示法和unnest函数来完成此操作

您是否先尝试了
CAST(idls作为varchar)
?此外,由于这是结构化信息,您实际上不需要regexp,是吗?
REGEXP_EXTRACT(idls, '=(.+),') AS id