所以我正在使用 DynamoDB 存储我的Spark作业的状态。我创建了名为 scheduleTime(分区键)和 appName(范围键)的主键,并且我的spark作业在被创建后会写出作业的状态完成。我的Spark作业完成后,安排了另一个 Python脚本,以检索作业的状态并在出现故障时重新启动应用程序。有时候,即使有记录,在DynamoDB表中也没有特定的主键项。在使用UI时,我可以看到相应的记录。我为此使用了 boto3 库 table.get_item()方法。代码段如下:
table.get_item(
Key = {
'scheduleTime': scheduleTime,
'appName': appName
}
)
答案 0 :(得分:0)
所以基本上,问题在于DynamoDB Python boto3 库的 get_item()函数默认情况下支持不一致的读取(这与其他记录检索方法(例如 batch_get_items)有点奇怪())。因此,我只需要将 ConsistantRead标志设置为True 。
response = table.get_item(
Key = {
"scheduleTime": scheduleTime,
"appName": appName
},
ConsistentRead=True
)
因此,以上代码段可完美地立即读取。