我们正在尝试将拼花文件从blob复制到Postgres表。现在的问题是我的源parquet有一些带有数字数组的列,ADF抱怨不支持这些列,如果我将它更改为字符串数据类型,我的Postgres说它期望数字数组
有什么解决办法或解决办法来解决这个问题?
发布于 2022-06-10 12:33:31
解决此问题的方法是将这些列的类型从数组类型更改为Postgres表中的字符串。这可以使用以下代码来完成:
ALTER TABLE <table_name> ALTER COLUMN <column_name> TYPE text; 我使用了一个示例表player,它由两个数组列position (整数数组)和role (文本数组)组成。

更改这些列的类型后,表如下所示。
ALTER TABLE player1 ALTER COLUMN position TYPE varchar(40);
ALTER TABLE player1 ALTER COLUMN role TYPE varchar(40);

现在可以在ADF中完成复制活动,而不会出现任何错误。
如果存在任何现有记录,则特定的数组类型值将转换为字符串类型,并且它还可以帮助您完成复制活动,而不会出现任何错误。下面是这种情况的一个例子。
初始表数据(数组类型列):https://i.stack.imgur.com/O6ErV.png
注:
{}中而不是[]中,则可以使用ALTER Query.[]中,并且试图将列转换回表中的数组类型,则会引发以下错误。F 229
ERROR: malformed array literal: "[1,1,0]"
DETAIL: Missing "]" after array dimensions.https://stackoverflow.com/questions/72571412
复制相似问题