首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本地运行Mosaic (外部数据库)

如何在本地运行Mosaic (外部数据库)
EN

Stack Overflow用户
提问于 2022-05-18 13:12:48
回答 1查看 180关注 0票数 1

我正在使用Databricks上的镶嵌进行一些地理空间转换,到目前为止,它运行得很好。

随着我的代码库开始增长,我正在寻找一种方法在本地机器上运行地理空间转换上的单元测试。然而,我不能让马赛克在当地工作。下面是一个复制我得到的错误的最小示例:

代码语言:javascript
复制
from mosaic import enable_mosaic
from pyspark.sql import SparkSession

spark_session = (
    SparkSession.builder.master("local[*]").appName("mylib-tests").getOrCreate()
)
enable_mosaic(spark_session)  # <- Error here

下面是运行enable_mosaic(spark_session)的完整日志,包括我得到的错误:

代码语言:javascript
复制
22/05/18 12:00:23 INFO MosaicLibraryHandler: Looking for Mosaic JAR at /home/nicolas/.pyenv/versions/myenv/lib/python3.9/site-packages/mosaic/lib/mosaic-0.1.1-jar-with-dependencies.jar.
22/05/18 12:00:23 INFO MosaicLibraryHandler: Automatically attaching Mosaic JAR to cluster.
Traceback (most recent call last):
  File "/home/nicolas/.pyenv/versions/myenv/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3437, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-e83e439e0633>", line 1, in <module>
    enable_mosaic(spark_session)
  File "/home/nicolas/.pyenv/versions/myenv/lib/python3.9/site-packages/mosaic/api/enable.py", line 47, in enable_mosaic
    _ = MosaicLibraryHandler(config.mosaic_spark)
  File "/home/nicolas/.pyenv/versions/myenv/lib/python3.9/site-packages/mosaic/core/library_handler.py", line 29, in __init__
    self.auto_attach()
  File "/home/nicolas/.pyenv/versions/myenv/lib/python3.9/site-packages/mosaic/core/library_handler.py", line 76, in auto_attach
    ManagedLibraryId.defaultOrganization(),
TypeError: 'JavaPackage' object is not callable

我想我的本地设置和Databricks上的环境有一些不同,但是我找不到缺少的东西。是否有人设法让Mosaic在Databricks之外工作?

EN

回答 1

Stack Overflow用户

发布于 2022-05-24 07:44:42

我终于成功了。

当我更改星火会话的配置时,问题消失了,如下所示:

代码语言:javascript
复制
spark_session = (
    SparkSession.builder.master("local[*]")
    .config(
        "spark.jars",
        f"{os.environ['VIRTUAL_ENV']}/lib/python3.9/site-packages/"
        "mosaic/lib/mosaic-0.1.1-jar-with-dependencies.jar",
    )
    .config("spark.databricks.labs.mosaic.jar.autoattach", False)
    .appName("mylib-tests")
    .getOrCreate()
)
enable_mosaic(spark_session)  # works

我希望这能帮助其他人至少有一些有用的东西,尽管我发现在python虚拟环境中引用jar文件并不是很干净……如果您有更好的解决方案,请随时留下另一个答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72289894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档