Spark2 mongodb连接器多态模式

时间:2017-12-13 09:44:46

标签: mongodb apache-spark pyspark spark-dataframe apache-spark-2.0

我有包含

的集合col
{
   '_id': ObjectId(...)
   'type': "a"
   'f1': data1
}

在同一个集合上我有

{
   '_id': ObjectId(...)
   'f2': 222.234
   'type': "b"
}   

Spark MongoDB connector工作不正常。它在错误的字段中重新排序数据

例如:

{
   '_id': ObjectId(...)
   'type': "a"
   'f1': data1
}


{
   '_id': ObjectId(...)
   'f1': data2
   'type': "a"
}

Rdd将是:

------------------------
|  id  |  f1   | type  |
------------------------
| .... |  a    | data1 |
| .... | data2 | a     |
------------------------

是否有任何使用多态架构的建议

1 个答案:

答案 0 :(得分:0)

  

是否有任何使用多态架构的建议

意见警告)最好的建议是不要首先拥有一个。从长远来看,这是不可能的,非常容易出错,需要在客户端进行复杂的补偿。

如果您有

怎么办?
  • 您可以尝试将Aggregation Framework$project一起使用,以便在将数据提取到Spark之前对其进行清理。例如,请参阅文档的Aggregation section
  • 不要尝试将其与结构化格式相结合。使用RDDs,以普通Python dict获取数据并手动处理问题。