我在 Redshift 中创建表时遇到以下错误:
Column "main.sales_metrics" has unsupported type "character varying[]".;
在 DataFrame 模式中,它看起来像这样:
|-- sales_metrics: array (nullable = true)
|-- element: string (nullable = true)
我试图像在 PostgreSQL 中通常做的那样声明该列:sales_metrics text[]
正如我从文档中读到的那样,Amazon Redshift 不支持 PostgreSQL 数据类型。
那么在RedShift建表时,应该如何正确声明存储Array[String]
的sales_metrics
列呢?
最佳答案
Redshift does not support arrays , 但也有一些 JSON functions您可以使用。 基本上你可以将数据存储为 varchar 并使用 json 函数来查询数据
例如:
create temporary table sales_metrics (col1 varchar(20));
insert into sales_metrics values ('[1,2,3]');
然后
select json_extract_array_element_text(col1, 2) from sales_metrics;
json_extract_array_element_text
---------------------------------
3
(1 row)
关于postgresql - 在 RedShift 表中存储数组的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680795/