Amazon dynamodb AmazonServiceException:提供的AttributeValue为空,必须正好包含一个受支持的数据类型

Amazon dynamodb AmazonServiceException:提供的AttributeValue为空,必须正好包含一个受支持的数据类型,amazon-dynamodb,amazon-dynamodb-streams,Amazon Dynamodb,Amazon Dynamodb Streams,我正在尝试从dynamodb控制台界面导入数据,但无法成功 数据是 {"_id":{"s":"d9922db0-83ac-11e6-9263-cd3ebf92dec3"},"applicationId":{"S":"2"},"applicationName":{"S":"Paperclip"},"ip":{"S":"127.0.0.1"},"objectInfo":{"S":"elearning_2699"},"referalUrl":{"S":"backported data"},"url":

我正在尝试从dynamodb控制台界面导入数据,但无法成功

数据是

{"_id":{"s":"d9922db0-83ac-11e6-9263-cd3ebf92dec3"},"applicationId":{"S":"2"},"applicationName":{"S":"Paperclip"},"ip":{"S":"127.0.0.1"},"objectInfo":{"S":"elearning_2699"},"referalUrl":{"S":"backported data"},"url":{"S":""},"userAgent":{"S":""},"userEmail":{"S":"karthick.shivanna@test.com"},"userId":{"S":"508521"},"userName":{"S":"Karthik"},"created":{"S":"1486983137000"},"verb":{"S":"submitproject"},"dataVals":{"S":"{\"projectid\":5,\"name\":\"Test 1\",\"domain\":\"apparel\",\"submittype\":[\"Writeup\",\"Screenshots\"],\"passcriteria\":\"Percentage\",\"taemail\":\"bhargava.gade@test.com\",\"attemptNo\":1,\"submitDate\":1467784988}"},"eventTime":{"S":"1467784988000"}}
我正在犯错误

错误:java.lang.RuntimeException: com.amazonaws.AmazonServiceException:提供的AttributeValue为 空,必须正好包含一个受支持的数据类型(服务: AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException; 请求ID:GECS2L57CG9ANLKCSJSB8EIKVV4KQNSO5AEMVJF66Q9ASUAJG)位于 org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.handleException(DynamoDBFibonacciRetryer.java:107) 在 org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.runWithRetry(DynamoDBFibonacciRetryer.java:83) 在 org.apache.hadoop.dynamodb.DynamoDBClient.writeBatch(DynamoDBClient.java:220) 在 org.apache.hadoop.dynamodb.DynamoDBClient.putBatch(DynamoDBClient.java:170) 在 org.apache.hadoop.dynamodb.write.AbstractDynamoDBRecordWriter.write(AbstractDynamoDBRecordWriter.java:91) 在 org.apache.hadoop.mapred.MapTask$DirectMapOutputCollector.collect(MapTask.java:844) 在 org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:596) 位于org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper.j 错误堆栈跟踪 amazonaws.datapipeline.taskrunner.TaskExecutionException:未能 完成EMR变换 amazonaws.datapipeline.activity.EmrActivity.runActivity(EmrActivity.java:67) 在 amazonaws.datapipeline.objects.AbstractActivity.run(AbstractActivity.java:16) 在 amazonaws.datapipeline.taskrunner.TaskPoller.executemoterunner(TaskPoller.java:136) 在 amazonaws.datapipeline.taskrunner.TaskPoller.executeTask(TaskPoller.java:105) 在 amazonaws.datapipeline.taskrunner.TaskPoller$1.run(TaskPoller.java:81) 在 private.com.amazonaws.services.datapipeline.poller.PollWorker.executeWork(PollWorker.java:76) 在 private.com.amazonaws.services.datapipeline.poller.PollWorker.run(PollWorker.java:53) 在java.lang.Thread.run(Thread.java:745)处,由以下原因引起: amazonaws.datapipeline.taskrunner.TaskExecutionException:错误: java.lang.RuntimeException:com.amazonaws.AmazonServiceException: 提供的AttributeValue为空,必须正好包含 支持的数据类型(服务:AmazonDynamoDBv2;状态代码:400; 错误代码:ValidationException;请求ID: GECS2L57CG9ANLKCSJSB8EIKVRVV4KQNSO5AEMVJF66Q9ASUAJG)位于 org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.handleException(DynamoDBFibonacciRetryer.java:107) 在 org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.runWithRetry(DynamoDBFibonacciRetryer.java:83) 在 org.apache.hadoop.dynamodb.DynamoDBClient.writeBatch(DynamoDBClient.java:220) 在 org.apache.hadoop.dynamodb.DynamoDBClient.putBatch(DynamoDBClient.java:170) 在 org.apache.hadoop.dynamodb.write.AbstractDynamoDBRecordWriter.write(AbstractDynamoDBRecordWriter.java:91) 在 org.apache.hadoop.mapred.MapTask$DirectMapOutputCollector.collect(MapTask.java:844) 在 org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:596) 在 org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper.java:26) 在 org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper.java:13) 位于org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:65) org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:432)位于 org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)位于 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:175)位于 java.security.AccessController.doPrivileged(本机方法)位于 javax.security.auth.Subject.doAs(Subject.java:415)位于 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) 在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:170)上 收件人:com.amazonaws.AmazonServiceException:提供的属性值为 空,必须正好包含一个受支持的数据类型(服务: AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException; 请求ID:GECS2L57CG9ANLKCSJSB8EIKVV4KQNSO5AEMVJF66Q9ASUAJG)位于 amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182) 在 amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770) 在 amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310) 在 amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1772) 在 amazonaws.services.dynamodbv2.AmazonDynamoDBClient.batchWriteItem(AmazonDynamoDBClient.java:730) 位于amazonaws.datapipeline.cluster.EmrUtil.runSteps(EmrUtil.java:286) 在 amazonaws.datapipeline.activity.EmrActivity.runActivity(EmrActivity.java:63)


我做错了什么吗?

我们必须在这里一步一步地检查。发生上述错误是因为某些属性的值为空。DynamoDB不支持属性的空值

示例:url、用户代理等。


请删除空属性,然后重试。我可以保证上述问题将得到解决。但是,可能还有其他问题。

在我的情况下,我遇到了相同的问题,因为来自的参数发送无效 映射模板

#set($inputRoot = $input.path('$'))
{ 
  "userId": "$input.params('userId')",
  "userEmail": "$input.params('userEmail')",
  "userName": "$input.params('userName')",
  "userPassword": "$input.params('userPassword')"
}
在这里,我发送了额外的参数userId,这就是发生错误的原因


对于空值,添加项时,主键属性是唯一必需的属性。属性值不能为null。字符串和二进制类型属性的长度必须大于零。集合类型属性不能为空。具有空值的请求将被拒绝,并出现ValidationException异常。 请检查这份文件

我希望它能帮助您。

错误:java.lang.RuntimeException:com.amazonaws.AmazonServiceException:Supplied AttributeValue为空,必须正好包含一个受支持的数据类型(