我在 mongodb 中有一个包含字段和 _id 的集合,如下所示:
_id: ObjectId('677d4aebcafa6974b025cbc2')
当我用 pyspark 读取它时,_id 的类型是字符串,没有任何更改,但只需在追加模式下将其写回到集合中,它就会创建一个新文档
_id: '677d4aebcafa6974b025cbc2'
,所以只是字符串
我尝试使用 bson.ObjectId 进行 udf
我尝试 struct(col(_id).alias(oid))
我将convertJson更改为objectOrArrayOnly
但没有任何作用,我无法通过重新创建 ObjectId 来更新文档
我想更新文档并在 mongoDB 中保留 _id 的 ObjectId 类型
如果有人需要,我用 Spark Connector 10.4 成功了
你可以用这个
.withColumn("_id", concat(lit('{"$oid":"'), col("_id"), lit('"}')))
并需要在写入选项中添加
convertJson: objectOrArrayOnly