【问题标题】:Request size is too large error while ingesting to cosmos DB摄取到 cosmos DB 时出现请求大小过大错误
【发布时间】:2017-12-21 12:35:42
【问题描述】:

我正在尝试从 SparkR 将数据摄取到 CosmosDB。我的数据采用数据框的形式。我使用示例数据集进行了测试,数据正在被摄取。但是当我尝试摄取大量数据时,我收到类似

的错误

{“错误”:[“请求大小太大”]}

我确保数据框大小不超过 2MB 我从the link 了解到 CosmosDB 中文档大小的最大限制为 2MB。请指导我应该纠正的地方。在此先感谢。

【问题讨论】:

  • 你能发布一些细节,比如导致这个错误的一些代码吗?
  • con con$insert(output_rich_dataset) 这是发生错误的地方
  • 你用的R的mongo驱动是什么?是mongosoup/rmongodb 还是RMongo?但是根据报错信息,我认为是从output_rich_dataset序列化的文档太大超过2MB,请序列化并检查序列化的json大小是否超过限制。
  • 我正在使用mongolite包进行数据摄取。我使用object.size()方法获取数据框的大小。有没有更好的方法来获取大小?

标签: r azure-cosmosdb sparkr


【解决方案1】:

基于你现在使用的mongolite驱动,我查看了使用jsonlite将R对象序列化为json的驱动源代码。因此,您可以按照以下代码检查要插入 Azure CosmosDB 的 json 文档的大小。

library(jsonlite)
# Serialize a R object to json using jsonlite
json <- serializeJSON(output_rich_dataset)
# Count the byte size of the json document using `nchar` method
size <- nchar(json)
print(size)

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多