Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 在google dataflow worker上暂存文件_Google Cloud Platform_Google Cloud Dataflow - Fatal编程技术网

Google cloud platform 在google dataflow worker上暂存文件

Google cloud platform 在google dataflow worker上暂存文件,google-cloud-platform,google-cloud-dataflow,Google Cloud Platform,Google Cloud Dataflow,Dataflow SDK中是否有允许我将资源文件暂存到工作程序上的内容?我需要在文件系统上为执行NLP的自定义DoFn提供特定的静态文件资源。我的目标是从类加载器中获取一个zip文件资源,并在工作程序初始化时在工作程序文件系统上只解压缩一次,而不是在自定义DoFn中尝试这样做。您可以指定--filesToStage来指定应该暂存的文件。有几个问题需要注意: 默认情况下,Dataflow SDK将--filesToStage设置为类路径中的所有文件,从而确保运行管道所需的代码可供工作人员使用。如果

Dataflow SDK中是否有允许我将资源文件暂存到工作程序上的内容?我需要在文件系统上为执行NLP的自定义DoFn提供特定的静态文件资源。我的目标是从类加载器中获取一个zip文件资源,并在工作程序初始化时在工作程序文件系统上只解压缩一次,而不是在自定义DoFn中尝试这样做。

您可以指定
--filesToStage
来指定应该暂存的文件。有几个问题需要注意:

  • 默认情况下,Dataflow SDK将
    --filesToStage
    设置为类路径中的所有文件,从而确保运行管道所需的代码可供工作人员使用。如果覆盖此选项,则需要确保它包含您的代码
  • 工人上的文件(将在类路径中)将附加一个MD5哈希。因此,如果指定了
    --filesToStage=foo.zip
    ,则文件名将是
    foo-.zip
    。您需要迭代类路径中的所有文件以找到合适的文件
  • 请参阅中有关
    --filesToStage
    的文档
    更多信息。

    我的问题更多地与“钩子”或API有关,在工作节点开始执行工作之前,我可以从“暂存资源”中提取一次文件。我能够暂存所需的文件,但在节点上执行任何工作之前,我找不到在本地检索和扩展资源的位置。我已经用“startBundle”方法在DonFn中这样做了,但我认为这不是最好的方法,因为这对任何工人来说都是常见的。由于正在使用NLP库,这些静态文件需要位于本地文件系统上。