我有一个 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) 我正在尝试将 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 但没有成功。
有人有任何建议来解决这个问题吗?
我正在尝试在 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)
,使用元组。
有人知道如何使用元组语法在最后一个代码块中设置模式名称吗?