gpt4 book ai didi

python - Pyspark-Mongo 缺少一些字段

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:12 26 4
gpt4 key购买 nike

所以我尝试使用 mongo-spark 连接器将 MongoDB 的集合读入 Spark,但是文档中的某些字段丢失了,以前有人遇到过这个问题吗?如果是,解决方案是什么?

我使用以下命令来读取 MongoDB 集合:

orders = spark.read.format("com.mongodb.spark.sql.DefaultSource") \
.option("uri" , "mongodb://127.0.0.1/company.orders") \
.load()
orders.select('missing_field').limit(10).collect()

示例文档:a) 示例文档 -

{
"_id" : "0000-10001",
"_updated" : ISODate("2016-02-03T22:47:47.000Z"),
"total" : 64.96,
"subtotal" : 64.96,
"user_email" : “abc@gmail.com"
}

我可以读取除 user_email 之外的所有字段

最佳答案

however some of the fields within the documents are missing

默认情况下 MongoDB Connector for Spark从一组文档推断关系模式 randomly sampled来自底层集合。听起来“缺失”字段 user_email 在 MongoDB 中通常是 NULL,导致 Spark 连接器无法为其创建数据类型映射。

但是,您可以手动声明架构,而不是使用基于自动采样的架构映射。对于Python Spark API ,您可以使用如下示例声明模式:

schema = StructType([StructField("user_email", StringType(), True), 
StructField("total", StringType(), True])
dataframe = rdd.toDF(schema)
dataframe = sqlContext.createDataFrame(rdd, schema)

关于python - Pyspark-Mongo 缺少一些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49458456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com