2017-02-06 16 views
0

я создал простую таблицу с именем, как test3амазонки красное смещение от копирования с помощью JSON возникли проблемы

create table if not exists test3(

    Studies varchar(300) not null, 
    Series varchar(500) not null 
    ); 

я получил некоторые данные JSON

{ 
     "Studies": [{ 
       "studyinstanceuid": "2.16.840.1.114151", 
       "studydescription": "Some study", 
       "studydatetime": "2014-10-03 08:36:00" 
     }], 
     "Series": [{ 
       "SeriesKey": "abc", 
       "SeriesInstanceUid": "xyz", 
       "studyinstanceuid": "2.16.840.1.114151", 
       "SeriesDateTime": "2014-10-03 09:05:09" 
     }, { 
       "SeriesKey": "efg", 
       "SeriesInstanceUid": "stw", 
       "studyinstanceuid": "2.16.840.1.114151", 
       "SeriesDateTime": "0001-01-01 00:00:00" 
     }], 

     "ExamKey": "exam-key", 
} 

и вот мой json_path

{ 

    "jsonpaths": [ 
     "$['Studies']", 
     "$['Series']" 
    ] 

} 

Оба данные json и путь json загружаются на s3.

Я пытаюсь выполнить следующую команду копирования в консуле красного смещения.

copy test3 
from 's3://mybucket/redshift_demo/input.json' 
credentials 'aws_access_key_id=my_key;aws_secret_access_key=my_access' 
json 's3://mybucket/redsift_demo/json_path.json' 

Я получаю следующее сообщение об ошибке. Может кто-нибудь, пожалуйста, помог застрял на этом сейчас.

Amazon](500310) Invalid operation: Number of jsonpaths and the number of columns should match. JSONPath size: 1, Number of columns in table or column list: 2 
Details: 
----------------------------------------------- 
    error: Number of jsonpaths and the number of columns should match. JSONPath size: 1, Number of columns in table or column list: 2 
    code:  8001 
    context: 
    query:  1125432 
    location: s3_utility.cpp:670 
    process: padbmaster [pid=83747] 
    -----------------------------------------------; 
1 statement failed. 

Время выполнения: 1.58s

+0

Проблема с s3 полномочий и ничего общего с красным смещением, я был в состоянии решить эту проблему. – balaji

ответ

0

ошибка RedShift является вводящим в заблуждение. Проблема в том, что ваш входной файл неверно отформатирован: у вас есть дополнительная запятая после последней записи JSON.

Copy успешно, если вы измените "ExamKey": "exam-key", на "ExamKey": "exam-key"

+0

ketan спасибо за комментарий Я нашел ошибку, это был мой плохой я имел неправильные учетные данные s3, в основном s3cmd, который использовал загрузку файлов в s3 bucket и s3 учетные данные в копии не совпадали. Как только я исправил ошибку выше. – balaji

+0

, но вам все равно придется удалить дополнительную запятую, как я предложил. иначе «копия» завершится ошибкой. –