Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON列解释为多列的拼花文件的红移副本_Json_Amazon Web Services_Amazon Redshift_Parquet - Fatal编程技术网

将JSON列解释为多列的拼花文件的红移副本

将JSON列解释为多列的拼花文件的红移副本,json,amazon-web-services,amazon-redshift,parquet,Json,Amazon Web Services,Amazon Redshift,Parquet,我正在将拼花地板文件从S3导入Redshift。该文件有3列。最后一列是包含多个列的JSON对象。使用以下代码: CREATE TABLE database_name.table_name ( text_field_1 VARCHAR(255) , text_field_2 VARCHAR(255), , json_field_1 VARCHAR(255)); 然后执行“复制”命令: copy parquet.raw_jamcityads_purchase fro

我正在将拼花地板文件从S3导入Redshift。该文件有3列。最后一列是包含多个列的JSON对象。使用以下代码:

CREATE TABLE database_name.table_name (
    text_field_1 VARCHAR(255)
    , text_field_2 VARCHAR(255), 
    , json_field_1  VARCHAR(255));
然后执行“复制”命令:

 copy parquet.raw_jamcityads_purchase from 's3://my-bucket/my-file.parquet'
 iam_role 'arn:aws:iam::1###########2:role/R######S3'        
 parquet;    
问题是COPY命令将拼花文件中的
json\u field\u 1
解释为多列,并给出以下错误:

Query execution failed

Reason:
SQL Error [500310] [XX000]: [Amazon](500310) Invalid operation: S3 Query Exception (Fetch) 
Details: 
-----------------------------------------------
  error:  S3 Query Exception (Fetch)
  code:      15001
  context:   Task failed due to an internal error. Unmatched number of columns between table and file. Table columns: 3, Data columns: 5, File name: ####
  query:     4384070
  location:  dory_util.cpp:872
  process:   query1_56_4384070 [pid=18317]
-----------------------------------------------;
我不知道如何告诉Redshift
json\u field\u 1
是拼花地板文件中的一个字段

我更喜欢使用
COPY
命令来实现这一目标,而不是探索红移光谱/Athena/etc,因为这是我们加载客户数据的方式


我希望能够将JSON列作为字符串加载并处理它。我不需要里面的东西。现在,它阻止我完全加载拼花地板文件。

这有帮助吗?这个问题解决了吗?Snathan escape不适用于拼花地板副本。这个问题似乎只与分区拼花S3文件有关。我想我发现了这个问题,分区数据的copy命令当前未使用文件夹路径中的分区列,并且由于该列本身不在数据中,因此导致缺少列的加载错误