当前位置: 首页 > 知识库问答 >
问题:

在jupyter笔记本中导入自定义scala对象,ontext.add文件

薄龙光
2023-03-14

我有一个Jupyter笔记本,我试图将一个键作为字符串从外部函数导入。在pyspark中,所有代码都可以正常工作

配置。py

credentials = {"item1": "prueba"}

def get_key(storage_account):
    return credentials[storage_account]

在笔记本上打电话:

spark.sparkContext.addFile("/home/joaco/data-experiment/notebooks_fpatito/readExternalFilesNotebook/pySpark/Config.py")
import Config
key = Config.get_key("item1")
print(key)

但是,当我尝试在Scala Spark中做同样的事情时,笔记本会给我一个未找到的错误

"未找到:value testMap"

测试图。斯卡拉

object testMap {

  val mapExample = Map(
    "item1" -> "item1value",
    "item2" -> "item2value",
    "item3" -> "item3value",
  )

}

我在做同样的火花ontext.addfile:

spark.sparkContext.addFile("/home/joaco/data-experiment/notebooks_fpatito/readExternalFilesNotebook/Spark/testMap.scala")

这个导入:import testMap_

但是找不到该类


共有1个答案

夹谷星纬
2023-03-14

Python是一种解释语言,但Scala不是,因此当您尝试像加载Python文件一样加载Scala文件时,Notebook会抛出错误。您需要将Scala文件编译为一个类并使其作为JAR可用。然后您可以将JAR添加到您的路径中,如下所示:

  1. --jar火花命令行上的选项
  2. spark.sparkContext.addJar(/path/to/JAR/file)
 类似资料:
  • 我想将一些通用功能外包给一个模块中的多个笔记本电脑(也用于测试目的)。当前目录结构如下所示 在中,有一个简单的函数 然而,当我想导入和使用在通过使用(我认为有意义的) 我得到一个。我做错了什么?我正在使用Python 3.9。

  • C:\users\user\appdata\local\programs\python\python37\lib\site-packages\scipy__init__.py在154#中,这使得“from scipy import fft”返回scipy.fft,而不是np.fft 155 del fft-->156 from。导入fft C:\users\user\appdata\local\p

  • 在本教程之后,我在数据库中的集群上上传了一个jar库,但是我无法从数据库笔记本中导入该库或使用该库的方法。我无法找到解决此主题的论坛或留档,所以我不确定此时是否可能。 我可以在Database ricks中将jar文件作为作业运行,只是无法将jar库导入Notebook以从那里运行它。 我还尝试使用%sh魔术命令运行jar文件,但收到以下:

  • 我已经安装了Keras和TensorFlow GPU,但当我尝试将这些库导入Jupiter笔记本时,出现了一个错误 下面是使用conda list的库,下面是jupyter显示给我的错误: ModuleNotFoundError Traceback(最近的调用最后)在---- ModuleNotFoundError:没有名为keras的模块 我在蟒蛇环境中尝试这个: pip3安装keras 要求已

  • 我有一些问题在python导入。我不太明白为什么会有错误。 我使用jupyter笔记本从目录笔记本。我需要导入函数位于 对于导入,我尝试使用 正如这里https://docs.python.org/3/reference/import.html(第5.7段)和python显示我一个错误试图相对导入超过顶级包。 包

  • 我有以下包(和工作目录): 在我有: 如果我尝试将MyPackage导入我的笔记本: 我将获取< code>ModuleNotFoundError:没有名为“module1”的模块。但是,如果我在笔记本之外执行脚本,导入就可以正常工作:如果我在同一个目录中创建< code>test.py并在笔记本中执行相同的操作,导入就可以正常工作。如果我在< code>__init__中使用完全限定名,它将在笔