使用Spark 2.0.2.6 和Scala 2.11.8 :尝试执行.collect()时遇到了异常java.lang.IllegalArgumentException: spark.sql.execution.id is already set
通过Future
执行时在DataFrame上使用/ .show()。
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.{Await, Future}
def printTable(query: String): Unit = {
try {
spark.sql(query).show
}
catch { case e: Exception => println(e) }
}
Future {
printTable("SELECT key1, key2 FROM schema.table1 LIMIT 1")
}
Future {
printTable("SELECT key1, key2 FROM schema.table2 LIMIT 1")
}
Future {
printTable("SELECT key1, key2 FROM schema.table3 LIMIT 1")
}
也:错误绝不是一致的,并且代码有时会打印出正确的答案。
这是怎么回事,我该如何解决?