0

我想编写一个数据流程序(Java 和 maven 实现)。以下是我要执行的步骤:

  1. Dataflow 应该从谷歌云存储中读取一个 csv 文件。csv 文件格式如下:

    产品名称、图片 URL、类别、描述 1、描述 2 Sakura 30062 6 件 Pigma Micron 墨水笔套装,https://images-na.ssl-images-amazon.com/images/I/71CkvpG3FEL。SY355 .jpg , 艺术, 包括 1 个尺寸:#005 (0.20mm)

    CCbetter 迷你热熔胶枪,带 25 支胶棒高温熔胶枪套件用于 DIY 小型工艺项目和密封和快速维修的灵活触发器(20 瓦,蓝色),https://images-na.ssl-images-amazon.com/图像/I/61iFrMg4%2B3L。SY355 .jpg , 安全舒适的电源开关,带LED灯模式。具有可拆卸和灵活的支撑,使枪保持稳定和直立,高质量的绝缘喷嘴即使在 500℉ 下长期使用也不会变形。

    . . . .

  2. 对于 csv 中的每一行,我需要选择图片 URL 并运行视觉 API 并获取前 2 个标签(例如,我们从视觉 API 为第一个产品/行获取标签 L1 和 L2,为第二个产品/行获取 L3 和 L4)

  3. 对于 csv 中的每一行,我需要连接产品名称、类别、description1 和 description2 并将其传递给 NL API。从 NL API 的响应中,我需要选择消费品类别下的前 2 个实体(例如,我们从第一行获得 E1 和 E2,从第二行获得 E3 和 E4)

  4. 我需要从检索到的响应中创建以下结构:

    产品名称,Topic Sakura 30062 6 支 Pigma Micron 墨水笔套装,L1 Sakura 30062 6 支 Pigma Micron 墨水笔套装,L2 Sakura 30062 6 支 Pigma Micron 墨水笔套装,E1 Sakura 30062 6 支 Pigma Micron 墨水笔套装, E2

    CCbetter 迷你热熔胶枪带 25 根胶棒高温熔胶枪套件 用于 DIY 小工艺项目和密封和快速维修的灵活触发器(20 瓦,蓝色),L3 CCbetter 迷你热熔胶枪带 25 根胶棒高温熔胶枪用于 DIY 小工艺项目和密封和快速维修的套件灵活触发器(20 瓦,蓝色),L4 CCbetter 迷你热熔胶枪,带 25 根胶棒高温熔胶枪套件用于 DIY 小工艺项目和密封和快速维修的灵活触发器(20 瓦) ,蓝色),E3 CCbetter 迷你热熔胶枪,带 25 根胶棒高温熔胶枪套件用于 DIY 小型工艺项目和密封和快速维修的灵活触发器(20 瓦,蓝色),E4。. . .

  5. 我想将此网格(步骤 4 中的结构)写入 Bigquery 表

我是 Dataflow 的新手,因此非常感谢任何帮助、代码片段或整个源代码或参考

4

1 回答 1

4

您应该首先阅读一份快速入门指南,然后查看一些示例管道

根据您的描述,高级大纲可能是:

  1. 用于TextIO.read从 GCS 读取内容。请注意,它不支持忽略标头,因此您可能需要自己检测并删除它。
  2. 在文件每一行的 URL 上编写一个DoFn使用视觉 API 的代码。您甚至可以将其分成多个DoFns - 一个用于将行转换为 URL,然后是 DoFn 以使用视觉 API,然后是 DoFn 以提取前两个标签。
  3. 编写另一个DoFn或一系列DoFns 来执行连接并使用 NL API。
  4. 编写另一个DoFn或一系列DoFns,以生成所需输出格式为TableRows 的行。
  5. 使用BigQueryIO.write转换将它们写入 BigQuery。
于 2016-11-22T19:17:36.933 回答