Python Pypark Mongo缺少一些字段
因此,我尝试使用mongo spark connector将收集表单MongoDB读入spark,但是文档中的一些字段丢失了,以前有人遇到过这个问题吗?如果是,解决方案是什么 我正在使用以下命令读取MongoDB集合:Python Pypark Mongo缺少一些字段,python,mongodb,pyspark,Python,Mongodb,Pyspark,因此,我尝试使用mongo spark connector将收集表单MongoDB读入spark,但是文档中的一些字段丢失了,以前有人遇到过这个问题吗?如果是,解决方案是什么 我正在使用以下命令读取MongoDB集合: orders = spark.read.format("com.mongodb.spark.sql.DefaultSource") \ .option("uri" , "mongodb://127.0.0.1/company.orders") \
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"
}
我可以阅读除用户电子邮件以外的所有字段
但是,文档中的某些字段丢失
默认情况下,从基础集合的一组文档推断关系模式。听起来,在MongoDB中,“缺少”字段user\u email
通常为空,这导致Spark connector无法为其创建数据类型映射
但是,您可以手动声明模式,而不是使用基于自动采样的模式映射。对于,您可以通过以下示例声明架构:
schema = StructType([StructField("user_email", StringType(), True),
StructField("total", StringType(), True])
dataframe = rdd.toDF(schema)
dataframe = sqlContext.createDataFrame(rdd, schema)
我更新了spark mongo连接器,解决了问题。所以,您是说集合中的某些文档缺少字段。你想解决的实际问题是什么?确定缺少哪些字段?您可以通过a)包括一个示例文档和b)说明您试图实现的预期目标来进一步阐述。@WanBachtiar我刚刚编辑了我的问题以回答a)和b)