Apache spark 使用foreachPartition管理多个数据库连接和数据
我会尽可能地把它弄清楚,这样就不需要一个例子,因为这必须是一个我没有正确理解的概念,我正在努力解决,而不是数据或Spark代码本身的问题 我被要求在他们自己的数据库(MongoDB)中插入城市数据,我正试图尽快完成这些更新 考虑以下示例数据框,其中我想对MongoDB做一些改进,例如,年,城市和区域Apache spark 使用foreachPartition管理多个数据库连接和数据,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我会尽可能地把它弄清楚,这样就不需要一个例子,因为这必须是一个我没有正确理解的概念,我正在努力解决,而不是数据或Spark代码本身的问题 我被要求在他们自己的数据库(MongoDB)中插入城市数据,我正试图尽快完成这些更新 考虑以下示例数据框,其中我想对MongoDB做一些改进,例如,年,城市和区域 // the 'getDatabaseWriteConfigsPerCity' method filters the 'df' so it only contains the docs fr
// the 'getDatabaseWriteConfigsPerCity' method filters the 'df' so it only contains the docs from a single city.
for (cityDBConnection <- getDatabaseWriteConfigsPerCity(df) {
cityDBConnection.getDf.foreach(
... // set MongoDB upsert criteria.
)
}
年份-城市-区域-数量商业-数量车辆
拥有groupedBy我正在等待的那些列,以便向数据库执行向上插入
使用MongoDB驱动程序,我需要实例化几个WriteConfig来处理多个数据库(每个城市1个数据库)
//getDatabaseWriteConfigsPerCity方法过滤“df”,使其仅包含来自单个城市的文档。
用于(城市数据库连接)
有什么方法可以确保分区包含
与upsert密钥相关的文档?如果您这样做:
您可以确保具有相同city
的所有记录都在同一分区中(但每个分区可能有多个city
)
有什么方法可以确保分区包含
与upsert密钥相关的文档?如果您这样做:
你可以确定所有具有相同city
的记录都在同一个分区中(但每个分区可能不止一个city
)那么简单!?天哪,我似乎还需要仔细阅读API。非常感谢!:)那么简单!?天啊,看来我还需要好好阅读API。非常感谢!:)
df.repartition("city").foreachPartition{...}