scala - 在 Scala 中创建 SparkSession 时出现 java.lang.InterruptedException
问题描述
如果我克隆这个要点:https ://gist.github.com/jamiekt/cea2dab3ea8de91489b31045b302e011
然后发出sbt run
失败就行了
val spark = SparkSession.builder()
.config(new SparkConf().setMaster("local[*]"))
.enableHiveSupport()
.getOrCreate()
有错误:
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait 的 Java.lang.InterruptedException(AbstractQueuedSynchronizer.java:2014)
不知道为什么会发生这种情况。有人有建议吗?
Scala 版本是 2.11.12(参见要点中的build.sbt)
Spark 版本是 2.3.0(再次参见build.sbt)
Java 版本
$ java -version
java version "1.8.0_161"
解决方案
该错误是因为您尚未停止创建的sparkSession实例,并且该实例已从内存中删除,而不会在sbt run
完成后立即关闭,即在成功完成代码之后。
所以你只需要
spark.stop()
在创建实例的范围的末尾
object Application extends App{
import DataFrameExtensions_._
val spark = SparkSession.builder().config(new SparkConf().setMaster("local[*]")).enableHiveSupport().getOrCreate()
//import spark.implicits._
//val df = Seq((8, "bat"),(64, "mouse"),(-27, "horse")).toDF("number", "word")
//val groupBy = Seq("number","word")
//val asAt = LocalDate.now()
//val joinedDf = Seq(df.featuresGroup1(_,_), df.featuresGroup2(_,_)).map(_(groupBy, asAt)).joinDataFramesOnColumns(groupBy)
//joinedDf.show
spark.stop()
}
就在之前
Java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:2014)
您也必须有以下消息
ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext
这为错误的原因提供了线索。
推荐阅读
- reactjs - Curl 有效,但 React App 在使用 Axios 和 Express 时抛出无法 POST / 错误
- javascript - 初始化函数 TypeError:无法读取 null 的属性“样式”
- javascript - 多个 Javascript 闭包和命名实践让我都转过身来
- javascript - jQuery - 从下拉菜单中预选
- json - JSONDecodeError:预期值:AWS Lambda 中的第 1 行第 1 列错误
- sql - 通过`EMPLOYEE`检查`ENTRY`的数量以及最后3个`ENTRY`中的`ACTIVITY`是否相同
- android - 从 firebase 读取数据并设置 textview 的值
- javascript - 反应状态切换只工作一次
- android - 当新消息到达Android Studio时,列表视图上突出显示的项目消失了
- php - 如何从php中的多个输入上传多个图像?