AmazonServiceException:提供的AttributeValue为空,必须完全包含一种受支持的数据类型

rah*_*ulb 5 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":{"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"}}
Run Code Online (Sandbox Code Playgroud)

我低于错误

错误:java.lang.RuntimeException:com.amazonaws.AmazonServiceException:提供的AttributeValue为空,必须完全包含一种受支持的数据类型(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:GECS2L57CG9ANLKCSJSB8EIKVRVV4JQQSO5AEMVJF)。 apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.handleException(DynamoDBFibonacciRetryer.java:107)位于org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.runWithRetry(DynamoDBFiamoaccoop.atch.dy.dy.dy.dy.dy org.apache.hadoop.dynamodb.DynamoDBClient.putBatch(DynamoDBClient.java:170)处org.apache.hadoop.dynamodb.write.AbstractDynamoDBRecordWriter.write(AbstractDynamoDBRecordWriter.java:91)处org.apache.hadoop .mapred。org.apache.hadoop.mapred.MapTask $ OldOutputCollector.collect(MapTask.java:596)的org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper)的MapTask $ DirectMapOutputCollector.collect(MapTask.java:844)。 j errorStackTrace amazonaws.datapipeline.taskrunner.TaskExecutionException:无法完成amazonaws.datapipeline.activity.EmrActivity.runActivActivity(EmrActivity.java:67)上的EMR转换,位于amazonaws.datapipeline.objects.AbstractActivity.run(AbstractActivity.java:16)上在amazonaws.datapipeline.taskrunner.TaskPoller.executeRemoteRunner(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)at private.com.amazonaws.services.datapipeline.poller.PollWorker.run(PollWorker.java:53)at java.lang.Thread.run(Thread.java:745)原因:amazonaws.datapipeline.taskrunner.TaskExecutionException :错误:java.lang.RuntimeException:com.amazonaws.AmazonServiceException:提供的AttributeValue为空,必须完全包含一种受支持的数据类型(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:GECS2L57CG9ANLKCSJSB8EIKVRVV4KQNSO5AEMVA .org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.handleException(DynamoDBFibonacciRetryer.java:107)位于org.apache.hadoop.dynamodb.DynamoDBFibonacciRetryer.runWithRetry(DynamoDBFiamoamooop.atch.dy.dy.dy.dy.dy .java:220),请访问org.apache.hadoop.dynamodb。org.apache.hadoop.dynamodb.write.AbstractDynamoDBRecordWriter.write(AbstractDynamoDBRecordWriter.java:91)处的DynamoDBClient.putBatch(DynamoDBClient.java:170)在org.apache.hadoop.mapred.MapTask $ DirectMapOutputCollector.collect(MapTask.java: 844),位于org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper.java:26),位于org.apache.hadoop.dynamodb.tools.ImportMapper.map(ImportMapper.java:26),位于org.apache.hadoop.mapred.MapTask $ OldOutputCollector.collect(MapTask.java:596) .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.YarnChild $ 2.run(YarnChild.java:175),位于org.apache.hadoop.mapred.MapTask.run(MapTask.java:343),位于java.security.AccessController.doPrivileged (本机方法)位于javax.security.auth.Subject。org.apache.hadoop.security.UserGroupInformation.doAs(Subject.java:415)在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:170)处的doAs(UserGroupInformation.java:1548) .amazonaws.AmazonServiceException:提供的AttributeValue为空,必须准确包含其中一种受支持的数据类型(Service:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:GECS2L57CG9ANLKCSJSB8EIKVRVV4KQNSO5AEMVJF66Q9ASUamaJResponseHttp。 .java:1182)com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770)com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)com.amazonaws.http.AmazonHttpClient.execute( com.amazonaws.services.dynamodbv2上的AmazonHttpClient.java:310)。com.amazonaws.services.dynamodbv2上的AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1772).AmazonDynamoDBClient.batchWriteItem(AmazonDynamoDBClient.java:730)位于amazonaws.datapipeline.cluster.EmrUtil.runSteps(EmrUtil.java) .activity.EmrActivity.runActivity(EmrActivity.java:63)

我做错什么了吗?

Pri*_*ata 5

错误:java.lang.RuntimeException:com.amazonaws.AmazonServiceException:提供的 AttributeValue 为空,必须包含支持的数据类型之一(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException这是您得到的错误。

以下是可能的原因

  1. DynamoDB 不支持空值,因此您应该删除这些字段(同意@notionquest)
  2. 字段的值应根据表具有正确的数据类型