我已经使用Apache Beam为Google Cloud Dataflow创建了一个管道,但是我不能在本地拥有Python依赖项。但是,远程安装这些依赖项没有问题。
是否可以在本地(开发)环境中运行作业或创建模板而不执行Python代码?
嗯,我不是100%确定这是可能的,但你可以:
要求。txt
文件,包含管道执行的所有依赖项例如,您的文件可能如下所示:
import apache_beam as beam
with beam.Pipeline(...) as p:
result = (p | ReadSomeData(...)
| beam.ParDo(MyForbiddenDependencyDoFn()))
在同一个文件中,DoFn将从管道执行时间代码中导入依赖项,例如,process
方法。见:
class MyForbiddenDependencyDoFn(beam.DoFn):
def process(self, element):
import forbidden_dependency as fd
yield fd.totally_cool_operation(element)
执行管道时,可以执行以下操作:
python your_pipeline.py \
--project $GCP_PROJECT \
--runner DataflowRunner \
--temp_location $GCS_LOCATION/temp \
--requirements_file=requirements.txt
我从未尝试过,但它可能会奏效:)
看看这个教程。基本上,您编写python管道,然后使用
python your_pipeline.py \
--project $YOUR_GCP_PROJECT \
--runner DataflowRunner \
--temp_location $WORK_DIR/beam-temp \
--setup_file ./setup.py \
--work-dir $WORK_DIR
关键部分是--runner DataflowRunner
,因此它使用Google数据流(而不是您的本地安装)来运行管道。显然,你必须设置你的谷歌帐户和凭证。
问题内容: 我有一个在后端使用postgres数据库的项目,并且我正在创建一个Dockerfile,该文件可以自动设置数据库的本地开发实例。该数据库包含大量功能,并且这些功能在历史上一直存储在上下文相关的sql文件中,例如,users.sql,companys.sql。这样做很好,因为每当进行更改时,我都可以简单地执行所有视图和删除/重新创建所有函数的相关sql文件。 但是,当尝试在一个新的pos
我有一个python中的ApacheBeam管道,不管出于什么原因,它都有下面这样的流。 SQL作业-- 当我在本地运行此程序时,此序列工作正常。然而,当我试图将其作为数据流管道运行时,它实际上并没有按此顺序运行。 在数据流上运行时是否有强制依赖关系的方法?
问题内容: 在Java应用程序中,我需要使用当前在python中实现的特定图像处理算法。知道此脚本使用了Numpy库,什么是最好的方法? 我尝试使用jythonc编译器将脚本编译为Java,但似乎它不支持对Numpy等本机库的依赖。我也尝试使用Jepp,但是在导入Numpy时也出现ImportError。 有什么建议吗? 问题答案: 如果使用的是Numpy,则可能只需要使用C Python,因为它
有没有办法在单个RDD上并行运行多个独立的聚合作业?首选是Python,然后是Scala和Java。 按优先顺序排列的行动过程是- > 在纱线上使用集群模式,提交不同的罐。这可能吗?如果可能,那么pyspark中是否可能? 使用Kafka-在通过kafka流式传输的数据帧上运行不同的火花提交。 我是Spark的新手,我的经验范围是在ETL上运行Spark on Yarn以串行方式进行多个聚合。我在
问题内容: 我有: 在MyClass2中是无法序列化的属性。如何序列化(和反序列化)此对象? 更正:MyClass2当然不是接口,而是类。 问题答案: 正如其他人指出的那样,Josh Bloch的Effective Java的 第11章是有关Java序列化的必不可少的资源。 该章中与您的问题有关的几点: 假设您要序列化MyClass2中不可序列化字段的状态,则MyClass必须可以直接访问该字段,
问题内容: 。 我有下表: 我需要用计算所有行。可能与聚合有关吗? 现在,我按如下操作: 问题答案: 如果您只需要对1的行数进行计数,则可以执行以下操作: 如果要计算 每 行的行数,则需要使用: