当我尝试上传到雪花时,使用 put 命令和 table 阶段出现错误

Posted

技术标签:

【中文标题】当我尝试上传到雪花时,使用 put 命令和 table 阶段出现错误【英文标题】:when i try to upload into snowflake , using put command and table stage getting error 【发布时间】:2020-05-14 16:37:58 【问题描述】:

创建表语句

create table  "DEMO_DB"."PUBLIC"."Trips"
(tripduration integer,
  starttime timestamp,
  stoptime timestamp,
  start_station_id integer,
  start_station_name string,
  start_station_latitude float,
  start_station_longitude float,
  end_station_id integer,
  end_station_name string,
  end_station_latitude float,
  end_station_longitude float,
  bikeid integer,
  usertype string,
  birth_year integer,
  gender integer);

PUT 命令

avinash#COMPUTE_WH@DEMO_DB.PUBLIC>put file://C:\Users\lanreddy\Desktop\JC-202002-citibike-tripdata1.csv @%Trips;
 **002003 (02000): SQL compilation error: Stage 'DEMO_DB.PUBLIC."%TRIPS"' does not exist or not authorized.**

【问题讨论】:

【参考方案1】:

当您创建表时,您在表名周围使用了双引号,这意味着它区分大小写:create table "DEMO_DB"."PUBLIC"."Trips"。当您这样做时,意味着您现在每次引用该表时都需要将其放在引号中(表名是 Trips 而不是 TRIPS 或 trips)

尝试将此作为您的 PUT 命令运行:

COMPUTE_WH@DEMO_DB.PUBLIC> put file://C:\Users\lanreddy\Desktop\JC-202002-citibike-tripdata1.csv @%"Trips";

或者这个:

COMPUTE_WH@DEMO_DB.PUBLIC> put file://C:\Users\lanreddy\Desktop\JC-202002-citibike-tripdata1.csv @"%Trips";

我建议永远不要使用双引号创建表格。如果您将原来的 CREATE TABLE 语句更改为以下语句,那么您原来的 PUT 命令可能会起作用:

create table  DEMO_DB.PUBLIC.trips
(tripduration integer,
  starttime timestamp,
  stoptime timestamp,
  start_station_id integer,
  start_station_name string,
  start_station_latitude float,
  start_station_longitude float,
  end_station_id integer,
  end_station_name string,
  end_station_latitude float,
  end_station_longitude float,
  bikeid integer,
  usertype string,
  birth_year integer,
  gender integer);

【讨论】:

以上是关于当我尝试上传到雪花时,使用 put 命令和 table 阶段出现错误的主要内容,如果未能解决你的问题,请参考以下文章

使用雪花连接器和 COPY INTO 功能将 csv 上传到雪花时如何指定分隔符

登录vps用put命令上传文件到远程主机出错~~~~

通过 PHP FTP PUT 将文本文件上传到 Google 上传

当我上传数据时,put 请求不起作用?

雪花 - Azure 文件上传 - 如果文件大小超过 40MB,我如何对文件进行分区

读取 csv 文件时雪花句柄为空