gpt4 book ai didi

azure - 在databricks中创建数据帧时获取 "error while emitting; method too large"

转载 作者:行者123 更新时间:2023-12-02 06:17:24 26 4
gpt4 key购买 nike

我正在函数中创建一个数据帧并返回该数据帧

def getDataFrame(rdd: RDD[MyCaseClass]) = {
spark.createDataFrame(rdd)
}

包含此函数的文件编译时没有任何错误。在另一个文件中运行它时会抛出错误:

%run "./Load_Dataframe"

The execution of this command did not finish successfully

import java.util.Properties
import org.apache.spark.rdd.RDD
defined class MyCaseClass
error: Error while emitting $$$cbf4485eb7852af86a790a85973a466$$$$w$STHierarchy$$typecreator1$1
Method too large: $$$cbf4485eb7852af86a790a85973a466$$$$w$STHierarchy$$typecreator1$1.apply (Lscala/reflect/api/Mirror;)Lscala/reflect/api/Types$TypeApi;

网上的大多数解决方案都告诉我们将函数分成多个更小的函数。但我的函数只有一行代码,不知道如何将其分成多个函数。

最佳答案

我问过这个问题。以下是我为解决此问题所采取的步骤。我不知道此问题的根本原因,我只知道这些解决方法有效:

  1. 分离并重新附加集群。这可以解决 80% 的问题。
  2. 重新启动集群,然后重试。
  3. 你的文件中有一个非常大的类,如果你把它分成多个类会更好。
  4. 您的文件中有一个巨大的函数。将该函数分解为多个较小的函数。

就我而言,我有一个很大的类(class),我将其分为两个类(class),它解决了我的问题。

关于azure - 在databricks中创建数据帧时获取 "error while emitting; method too large",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67758691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com