想要将 pandas 列数据类型转换为字符串,如果它具有 objectid - 动态

Want to cast pandas column data type to string, if its having objectid - dynamically

我有一个场景,我的所有 Mongodb 集合都有一个 objectId 列。我正在使用 pymongo 读取集合并将它们转换为 pandas 数据帧。

当我尝试使用 AWS lambda wrangler 库或 Pyarrow 失败 with type ObjectId: did not recognize Python value type when inferring an Arrow data type"

如果列类型是 Objectid,是否有办法将 objectId 动态转换为字符串?

myresult = collection.find(query)
 wr.s3.to_parquet(df1,path="s3://abcd/parquet.parquet")

示例mongo 数据模式

_id:objectID
id:string
createTimestamp: timestamp
updateTimestamp:timestamp
deleteTimestamp:timestamp

另存为 Parquet 到架构

_id:String
id:string
createTimestamp: timestamp
updateTimestamp:timestamp
deleteTimestamp:timestamp

您可以尝试将 _id 列转换为字符串,然后再将其保存到 parquet。

wr.s3.to_parquet(
  df1.astype({"_id": str}),
  path="s3://abcd/parquet.parquet")