У меня есть фрейм данных, который разделен на col0
;в DF есть много строк на значение col0
.У меня есть база данных, из которой я хочу получать пакеты данных, используя значения col0
в каждом разделе, но я не могу понять, как использовать foreachPartition
, поскольку он возвращает Iterator[Row]
Вот псевдокод того, что я хочу сделать:
var df = spark.read.parquet(...).repartition(numPartitions, "col0")
df.foreachPartition((part_df : DataFrame) => {
val values = part_df.select("col0").distinct
val sql = "select * from table0 where col0 in (${values})" // or some smarter method :)
val db_df = spark.read.jdbc(..., table = sql)
part_df.join(db_dv, "col0") // and/or whatever else
})
Есть идеи?