Как предложил @Rayan, вы можете использовать разнесение перед тем, как присоединить dataframe1 к dataframe2
Создание фреймов данных -
val dataframe1 = Seq((Array(50,30,10),-7,30)).toDF("idZones","longitude","latitude")
val dataframe2 = Seq((10,"aaaaa","bb32"),(90,"ppp","cc20")).toDF("id","col1","col2")
Explosion logi c -
dataframe1.select(explode($"idZones").as("idZones")).join(dataframe2, $"idZones" === dataframe2("id")).show(false)
Выход -
+-------+---+-----+----+
|idZones|id |col1 |col2|
+-------+---+-----+----+
|10 |10 |aaaaa|bb32|
+-------+---+-----+----+