簡體   English   中英

Snowflake:加載具有一些 ARRAY 字段的本地文件時出錯

[英]Snowflake: Error loading a LOCAL file that has some ARRAY fields

加載包含一些 ARRAY 字段的本地文件時出現錯誤。 對於所有字段都是字符串的源文件,我沒有得到這個。

創建表:

CREATE TABLE "TESTDB"."LAYER2"."CREW" ("TCONST" STRING, "DIRECTORS" ARRAY, "WRITERS" ARRAY);

數據文件:

tconst  directors   writers
tt0000001   nm0005690   \N
tt0000002   nm0721526   \N
tt0000003   nm0721526   \N
tt0000004   nm0721526   \N
tt0000005   nm0005690   \N
tt0000006   nm0617588   nm0617588
tt0000007   nm0374658,nm0005690 \N
tt0000008   nm0719756   nm0331003,nm0759866,nm0173952,nm0719756,nm0816458

SQL

PUT file://<file_path>/title.crew_1.tsv @TEST_2/ui1770650179898

COPY INTO "TESTDB"."LAYER2"."TEST_2" FROM @/ui1770650179898 
FILE_FORMAT = '"TESTDB"."LAYER1"."TSV"' ON_ERROR = 
'ABORT_STATEMENT' PURGE = TRUE;

錯誤信息:

無法將文件復制到表中。 解析 JSON 時出錯:nm0005690 文件 '@TEST_2/ui1770650179898/sample.samplefile.tsv',第 2 行,字符 11 第 1 行,列“TEST_2”[“DIRECTORS”:2] 如果您想在遇到錯誤時繼續加載,對 ON_ERROR 選項使用其他值,例如“SKIP_FILE”或“CONTINUE”。 有關加載選項的更多信息,請在 SQL 客戶端中運行“info loading_data”。

我覺得這是一個簡單的答案 - 對各種方法進行了故障排除但沒有成功,並且在 web 上找不到任何東西來為我指明正確的方向。

任何幫助將不勝感激。

您需要將字符串轉換為 arrays。 我假設分隔符是制表符:

create file format csvtab type=csv field_delimiter = '\t' skip_header=1;

COPY INTO "CREW" FROM 
(select $1, SPLIT($2,','), SPLIT($3,',') from @mystage)
FILE_FORMAT = csvtab ON_ERROR = 'ABORT_STATEMENT' ;

select * from "CREW";

+-----------+---------------------------+---------------------------------------------------------------+
|  TCONST   |         DIRECTORS         |                            WRITERS                            |
+-----------+---------------------------+---------------------------------------------------------------+
| tt0000001 | ["nm0005690"]             |                                                               |
| tt0000002 | ["nm0721526"]             |                                                               |
| tt0000003 | ["nm0721526"]             |                                                               |
| tt0000004 | ["nm0721526"]             |                                                               |
| tt0000005 | ["nm0005690"]             |                                                               |
| tt0000006 | ["nm0617588"]             | ["nm0617588"]                                                 |
| tt0000007 | ["nm0374658","nm0005690"] |                                                               |
| tt0000008 | ["nm0719756"]             | ["nm0331003","nm0759866","nm0173952","nm0719756","nm0816458"] |
+-----------+---------------------------+---------------------------------------------------------------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM