是否可以在 cosmosdb 中保留嵌套架构以激发火花连接器



我刚刚启动了 Azure cosmosdb to Spark 连接器,以将我的 cosmosdb 集合引入 Spark 数据帧。 不幸的是,使用从 coll 查询中的基本选择 *,它将任何嵌套结构展平为字符串。 这个字符串的格式甚至不是json,所以我不知道如何解析它,格式看起来像:

{key1=value,key2=anothervalue} 

是否有办法 cosmosdb 连接器可以在 Spark 中保留嵌套结构,或者有没有办法在 Spark 中解析这种字符串格式?

Zach,你使用的是哪个版本的Spark连接器?

连接器通过对数据子集进行采样来派生架构。如果属性没有好的类型,那么它将使用 String。您可以尝试使用schema_samplesize配置增加采样大小,默认值为 1000。属性值是否有可能有多种类型?还是结构类型和空?对于后一种情况,我认为它将在 0.0.5 版本中修复。

我知道

这很旧,但在 2020 年遇到了同样的问题,所以:

  • 在对 CosmosDb 的查询中使用 ToString(json_col) 将为你提供一列字符串类型VALID其中包含 json(:",而不是=和任何内容)。

  • 如果查询的所有文档的架构相同,也可以以正常的 Spark 方式手动设置它 ( spark.read....schema(your_schema)... )。

最新更新