小编Gal*_*ses的帖子

将 Python 项目提交到 Dataproc 作业

我有一个 python 项目,其文件夹具有以下结构

main_directory - lib - lib.py
               - run - script.py
Run Code Online (Sandbox Code Playgroud)

script.py

from lib.lib import add_two
spark = SparkSession \
    .builder \
    .master('yarn') \
    .appName('script') \
    .getOrCreate()

print(add_two(1,2))
Run Code Online (Sandbox Code Playgroud)

并且lib.py

def add_two(x,y):
    return x+y
Run Code Online (Sandbox Code Playgroud)

我想在 GCP 中启动 Dataproc 作业。我在网上查过,但不太明白该怎么做。我正在尝试启动脚本

main_directory - lib - lib.py
               - run - script.py
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误消息:

from lib.lib import add_two
ModuleNotFoundError: No module named 'lib.lib'
Run Code Online (Sandbox Code Playgroud)

您能否帮助我了解如何在 Dataproc 上启动该作业?我发现做到这一点的唯一方法是删除绝对路径,将其更改为script.py

 from lib import add_two
Run Code Online (Sandbox Code Playgroud)

并将工作启动为

from lib.lib import add_two
spark = SparkSession \
    .builder …
Run Code Online (Sandbox Code Playgroud)

python pyspark google-cloud-dataproc

7
推荐指数
2
解决办法
6981
查看次数

无法在 pyspark 中导入 pyarrow

我正在尝试将 pyarrow 与 pyspark 一起使用。但是当我尝试执行时

import pyarrow
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

    In [1]: import pyarrow
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-f1048abcb32d> in <module>
----> 1 import pyarrow

~/opt/anaconda3/lib/python3.7/site-packages/pyarrow/__init__.py in <module>
     47 import pyarrow.compat as compat
     48
---> 49 from pyarrow.lib import cpu_count, set_cpu_count
     50 from pyarrow.lib import (null, bool_,
     51                          int8, int16, int32, int64,

ImportError: dlopen(/Users/user/opt/anaconda3/lib/python3.7/site-packages/pyarrow/lib.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libboost_filesystem.dylib
  Referenced from: /Users/user/opt/anaconda3/lib/libarrow.15.1.0.dylib
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我尝试在 conda 环境中安装 pyarrow,降级到 python 3.6 但没有成功。

有人有任何建议来解决这个问题吗?

pyspark pyarrow

5
推荐指数
1
解决办法
6772
查看次数

在 sqlalchemy orm 中定义模式名称和约束

我正在尝试在 SQLAlchemy ORM 中创建一个表,我需要在其中指定模式名称(对于 postgres)和一些约束。要仅指定模式名称,可以使用字典:

class NewTable(Base):
    __tablename__ = "new_table"
    __table_args__ = {"schema": "schema_name"}

    id = Column(Integer, primary_key=True)
    name = Column(String(255), unique=True)
Run Code Online (Sandbox Code Playgroud)

并定义约束,代码如下:

class NewTable(Base):
    __tablename__ = "new_table"
   
    id = Column(Integer)
    name = Column(String(255))

    __table_args__ = (
        PrimaryKeyConstraint("id", name="id_pk"),
        UniqueConstraint("name")
    )
Run Code Online (Sandbox Code Playgroud)

,使用元组。

有人知道如何使用元组语法在最后一个代码块中设置模式名称吗?

postgresql sqlalchemy

3
推荐指数
1
解决办法
1200
查看次数