我试图点击livypostapi(/sessions/:sessionid/statements)来提交spark作业。但是,在提交35+条语句(一次至少发送10条)之后,get语句抛出stackoverflow错误。在启动新会话后尝试此操作,下面是我的代码post/sessions/:sessionid/statements请求正文:
{
"code":"var df_20032_preview = SparkUtil.getOrRead(\"PREVIEW\",\"df_20032_preview\",\"/20032/e46b411d225ea0463376b88c4f8ac927/Test.csv\",\"rO0ABXQABG51bGw=\", false, \"%2C\", \"%22\", \"'Test'!A1\",1);"
}
这就是我们要读的逻辑
if (!DataframeMap.exists(dfName)) {
val schema:Option[List[DFColumn]] = ???
val read_odf = session.read.format("csv")
.option("header", "true")
.option("numPartitions", 10)
.option("quote", dqualifier)
.option("delimiter", ddelimiter)
.option("ignoreTrailingWhiteSpace", value = true)
.option("multiLine", value = true)
.option("inferSchema", value = infer)
.load(fileLocation)
val odf = read_odf
val ocolumns = ("MAPIT_ROW_INDEX" +: odf.columns).map(x => s"`$x`")
val odf1000 = addIndex(odf).select(ocolumns.head, ocolumns.tail: _*)
val idf1000 = odf1000
DataframeMap.init(dfName, odf1000, idf1000, schema) //store in map
}
DataframeMap.get(dfName)._2
我传递同一个请求主体并提交多个语句,但是当我通过id获取语句时,会出现一致的抛出stackoverflow错误,类似这样
{
"id": 40,
"code": "var df_20032_preview = MIS.getOrRead(\"PREVIEW\",\"df_20032_preview\",\"/e46b411d225ea0463376b88c4f8ac927/Test.csv\",\"rO0ABXQABG51bGw=\", false, \"%2C\", \"%22\", \"'Test'!A1\",1);",
"state": "available",
"output": {
"status": "error",
"execution_count": 40,
"ename": "Internal Error: java.lang.StackOverflowError",
"evalue": null,
"traceback": []
},
"progress": 1.0
}
还添加了我的dag以供参考。
有人能告诉我为什么我得到堆栈溢出错误吗?我在哪里可以看到日志来检查堆栈跟踪?
暂无答案!
目前还没有任何答案,快来回答吧!