Правильный способ сделать это, SPARK 2.x не 1.6, но применяются те же принципы. Гораздо проще, использовал DF в качестве источника. Обратите внимание на {}.
val tb1 = spark.sparkContext.parallelize(Seq(
("A", "X", "done"),
("A", "Y", "done"),
("C", "Y", "done"),
("B", "Y", "done")
)).toDF("Company", "Type", "Status")
val tb2 = spark.sparkContext.parallelize(Seq(
("A", "X", "done"),
("B", "Y", "done")
)).toDF("Company", "Type", "Status")
val tb3 = spark.sparkContext.parallelize(Seq(
("A", "X", "done")
)).toDF("Company", "Type", "Status")
for (tb <- Array(tb1 , tb2 , tb3)) {
tb.createOrReplaceTempView(s"tb")
}
tb2.show // etc.