小编sha*_*ane的帖子

将JSON数据加载到AWS Redshift会导致NULL值

我正在尝试执行加载/复制操作,以将数据从S3存储桶中的JSON文件直接导入Redshift.COPY操作成功,在COPY之后,表具有正确的行/记录数,但每个记录都为NULL!

它需要加载的预期时间,COPY命令返回OK,Redshift控制台报告成功且没有错误......但是如果我从表中执行简单查询,它只返回NULL值.

JSON非常简单+平面,并且格式正确(根据我在这里找到的示例:http://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html)

基本上,它是每行一行,格式如下:

{ "col1": "val1", "col2": "val2", ... }
{ "col1": "val1", "col2": "val2", ... }
{ "col1": "val1", "col2": "val2", ... }
Run Code Online (Sandbox Code Playgroud)

我尝试过根据JSON对象中的值和数据类型重写模式,以及从未压缩文件复制.我想也许JSON在加载时没有被正确解析,但如果无法解析对象,它可能会引发错误.

我的COPY命令如下所示:

copy events from 's3://mybucket/json/prefix' 
with credentials 'aws_access_key_id=xxx;aws_secret_access_key=xxx'
json 'auto' gzip;
Run Code Online (Sandbox Code Playgroud)

任何指导将不胜感激!谢谢.

amazon-web-services amazon-redshift

11
推荐指数
1
解决办法
3372
查看次数

Objective-C - 直接从对象数组中调用方法

我是Objective C的新手,我正在尝试直接调用对象的数组(NSArray)上的方法:

[[myPeople objectAtIndex: 0] setName: @"Shane"];
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,并返回一个警告说"已找到多个名为'setName'的方法"

我可以这样成功地执行操作:

Person* person = [myPeople objectAtIndex: 0];
[person setName: @"Shane"];
Run Code Online (Sandbox Code Playgroud)

我的语法在第一种情况下是不正确的,还是应该使用第二段代码?还是有一种我不知道的更好的方法?

谢谢,非常感谢任何帮助

objective-c

2
推荐指数
1
解决办法
3373
查看次数