В API фрейма данных spark мы можем транслировать всю таблицу, можно объединить ее с целевой таблицей, чтобы получить желаемый результат. Вот пример кода.
Импорт
import org.apache.spark.sql.functions.broadcast
код
val spark = SparkSession.builder().master("local").getOrCreate()
val df = spark.read.option("header", true).csv("data/user.txt")
df.createOrReplaceTempView("users")
val countries = Seq("Italy", "France", "United States", "Poland", "Spain")
import spark.implicits._
spark.sparkContext.parallelize(countries, 1).toDF("country").createOrReplaceTempView("countries")
broadcast(spark.table("countries")).join(spark.table("users"), "country").show()
содержимое файла «data / user.txt»
name,phone,country
a,123,India
b,234,Italy
c,526,France
d,765,India
Вывод кода:
+-------+----+-----+
|country|name|phone|
+-------+----+-----+
| Italy| b| 234|
| France| c| 526|
+-------+----+-----+
Примечание: код, протестированный с Spark 2.2 и Scala 2.11