使用SparkSQL和Futures的'spark.sql.execution.id已设置'异常

时间:2018-07-17 01:35:56

标签: scala apache-spark apache-spark-sql future

使用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")
}

也:错误绝不是一致的,并且代码有时会打印出正确的答案。

这是怎么回事,我该如何解决?

0 个答案:

没有答案