livy提交35+条语句后出现堆栈溢出错误

nnt7mjpx  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(182)

我试图点击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以供参考。


有人能告诉我为什么我得到堆栈溢出错误吗?我在哪里可以看到日志来检查堆栈跟踪?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题