当前位置: 首页 > 知识库问答 >
问题:

云存储上的Google Cloud Dataflow access.txt文件

戚建华
2023-03-14

如果在GCS上存储了一个。txt文件,该文件包含将用作beam.filter一部分的单词列表,可以在apache beam管道中动态访问该列表吗?我知道我可以将这个列表定义为管道中的全局变量,但我不确定如何将整个文件读入列表,以及是否有任何beam技巧来实现这一点。有什么建议吗?这是我当前的实现,这是不工作的…

def boolean_terms(word, term_list):
  if word in term_list:
    return (word, 1)
  else:
    return (word, 0)

# side table
filter_terms = p | beam.io.ReadFromText(path_to_gcs_txt_file)

words = ...

filtered_words = words | beam.FlatMap(lambda x: 
    [boolean_terms(word, filter_terms) for word in x])

我得到以下错误“TypeError:类型'_invalidunpickledpCollection'的参数不是可迭代的”

共有1个答案

范安歌
2023-03-14

您可以作为辅助输入访问单词列表。我相信beam.filter转换支持使用filter函数的侧输入,其方式与示例中的flatmappardo完全相同。

类似于:

words | beam.Filter(lambda x, filter_terms: word in filter_terms,
                    filter_terms=pvalue.AsList(p | beam.io.ReadFromText(path)))
 类似资料:
  • 从spring boot Controller上传文件到谷歌云存储。请提供我一个代码。 到目前为止,我得到了这样一个代码

  • 我在本地开发服务器上运行代码,但使用在项目上配置的GCS默认桶名。 Python 2.7版

  • 我试图链接PHP文件在谷歌云存储,但得到他们作为纯文本。我想连接到其他文件,但没有应用程序引擎,这是专门为应用程序引擎写的所有留档,甚至找不到桶存储是否有PHP支持,即使它应该。任何线索如何链接PHP文件正确的云存储?

  • 一旦被dataflow读取的消息就不会得到确认。我们如何确保一旦被数据流消费的消息被确认,并且对任何其他订阅者不可用? 为了重现和测试它,从同一个模板创建2个作业,您将看到这两个作业处理相同的消息。

  • 我想按照官方文档中提供的示例将一个文件上传到Google云存储 然而,我得到了一个错误: 线程“main”com.google.cloud.storage.StorageException中的异常:获取服务帐户的访问令牌时出错:400个错误请求{“错误”:“无效的授予”、“错误描述”:“无效的JWT:令牌必须是短期令牌(60分钟)并且在合理的时间范围内。请检查JWT声明中的iat和exp值。”位于

  • 我有一个谷歌云存储(GCS)桶标记为公共。我使用v4签名的URL将图像上传到这个公共桶。我可以通过HTTP头看到GCS缓存图像长达1小时。但是,当我上传相同图像的较新版本(具有相同的文件名)时,GCS不会使缓存无效,仍然为这些图像的较旧版本服务。当这些映像的较新版本上载到GCS时,如何确保缓存无效?必须使用v4签名的URL。