问题标签 [google-cloud-dataflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-datastore - 使用 DatastoreIO 的 Google Dataflow 问题
我正在尝试从 Dataflow (DatastoreIO) 读取包含 300k 条记录的 Datastore 表,并从 Datastore API 收到以下错误。
400 Bad Request 复合过滤器必须至少有一个子过滤器
代码:
错误(退出前发生 4 次):
这带来了其他问题:
1 - 在这种情况下,我应该定义一个过滤器吗?
2 - Dataflow 用于拆分作业的标准是什么?
3 - 有没有更简单的方法从 Datastore 转储大表?
谢谢。
google-cloud-dataflow - 从工厂方法 AvroCoder.of 构造实例失败?
我正在使用 AvroCoder.class 来序列化我的数据结构。我的代码如下所示:
当我尝试运行我的管道时,出现以下异常:
我该如何解决这个异常?我正在尝试在测试中运行我的管道。我正在使用 TestPipeline 创建和运行我的测试。
google-cloud-dataflow - 如何为滑动窗口编写单元测试?
Dataflow 是否为我提供了设置第一个窗口起点的方法?或者是否有计算起点的公式?
我正在尝试为应用 SlidingWindow、GroupByKey 和 DoFn 的复合转换编写单元测试。
我的窗户将是
其中 To 是第一个窗口的开始, period 是窗口的周期,duration 是窗口的持续时间。
因此,在不知道 To 的情况下,我无法预先计算输出中的预期值并将它们传递给 DataflowAssert 以验证结果。
java - BigQuery、TableRow:使用 java api 访问重复记录
我正在通过 java API 和新服务 Dataflow 访问 BigQuery 数据。我希望 TableRow 类具有以下方法:
- 返回 TableCell 实例的列表(在重复字段的情况下)
- 返回一个 TableRow 实例(在嵌套字段的情况下)
- 返回 TableRow 实例的列表(在重复嵌套字段的情况下)
但是我只找到了使用 get 方法访问 TableRow 实例的字段的示例代码,这并不方便,因为输出是 Object 类的实例。
目前我看到的唯一解决方案是解析我从 get 方法获得的字符串并自己构建一个 TableRow 对象,但我想知道是否有人有更好的解决方案可以分享?
非常感谢。
google-cloud-dataflow - 如何通过我的数据流的输出附加标题行?
我正在生成一个带有数据流的输出 CSV 文件,我想写一个标题行,然后将我的所有输出附加到该行。我该怎么做呢?
我的流程大致是这样的:
谢谢!
java - 在 Google Cloud Dataflow 中使用具有复杂 PCollection 类型的 TextIO.Write
我有一个看起来像这样的 PCollection:
我的目标是把它写成一个文本文件。我想使用类似的东西:
但我很难正确设置编码器。这是我认为可行的:
其中 TextualLongCoder 是我自己的 AtomicCoder 子类,类似于 TextualIntegerCoder。EventSession 类被注释为使用 AvroDeterministicCoder 作为它的默认编码器。
但是有了这个,我得到了包括非文本字符等在内的乱码输出。有人可以建议你如何将这个特定的 PCollection 写成文本吗?我敢肯定我在这里遗漏了一些明显的东西......
key-value - 如何从一个输出所有值对,按键分组,使用 Google Dataflow
我正在尝试做一些看起来相对简单但遇到一些困难的事情。
我有一堆文本,每一行都是一个值。我分析每一行文本,创建适当的密钥,然后发出 KV 对。然后我使用GroupByKey
变换。最后,我想输出现在按键分组的所有文本(如果我可以为每个键获取一个文本文件,则加分,但我不确定这是否可能)。
这是管道的apply
样子:
不幸的是,我无法FormatOutputFn()
按要求工作。
迭代Iterable<String>
并输出每个值并不能保证键值分组(如果我对此有误,请纠正我,然后我的问题就解决了)。然后我尝试使用StringBuilder()
,它适用于小型数据集,但不出所料地java.lang.OutOfMemoryError: Java heap space
在较大数据的日志中生成错误。我也尝试了Flatten.FlattenIterables
转换,但这也不起作用,因为 K,V 对中的值不是 a PCollection
,而只是一个常规Iterable
。
我已经看过这个关于通过 common key 分析的问题,但是从答案来看,我并不完全清楚我应该如何处理我的情况。我想我必须使用Combine.PerKey
,但我不确定如何使用它。我还假设必须有一种预烘焙的方式来做到这一点,但我在文档中找不到这种预烘焙的方式。我确定我只是没有找对地方。
而且,如上所述,如果有一种方法可以获取文本文件输出,其中文本文件的名称是键并且值都在文件中,那将是惊人的。但我不认为 Dataflow 可以做到这一点(还没有?)。
感谢您的阅读。
java - 编译依赖于版本 0.3.150227 google-cloud-dataflow-java-sdk-all 的 gradle 项目时出错
我正在开发一个使用 Google Cloud Data 流的 Java 应用程序,并且在尝试使用 gradle 进行编译时遇到错误。
build.gradle 中的 Dependencies 部分是:
}
我得到的错误是:
无法解析 com.google.cloud.dataflow:google-cloud-dataflow-java-proto-library-all:0.3.150206。要求::telstra-targetingserver-cdf-cptmappings:0.0.1 > com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:0.3.150227
无法解析 POM https://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-proto-library-all/0.3.150206/google-cloud-dataflow-java- proto-library-all-0.3.150206.pom 找不到 com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-parent:LATEST。在以下位置搜索:file:/Users/pablocaif/.m2/repository/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk- parent-LATEST.pom 文件:/Users/pablocaif/.m2/repository/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-parent -LATEST.jar https://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-parent-LATEST.pom https ://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/LATEST/google-cloud-dataflow-java-sdk-parent-LATEST.jar
https://repo1.maven.org/maven2/com/google/cloud/dataflow/google-cloud-dataflow-java-sdk-parent/中似乎缺少 LATEST
此时的内容是:
google-bigquery - 通过 Dataflow Java API 返回客户端的不一致 BigQuery 数据类型
给定 BigQuery 表:
以及以下客户端代码:
它产生:
为什么为 INTEGER 返回字符串?
为什么为 FLOAT 返回 Double?
google-bigquery - 谷歌云数据流中的动态分区?
我正在使用数据流来处理存储在 GCS 中的文件并写入 Bigquery 表。以下是我的要求:
- 输入文件包含事件记录,每条记录属于一个事件类型;
- 需要按 eventType 对记录进行分区;
- 对于每个 eventType 输出/写入记录到相应的 Bigquery 表,每个 eventType 一个表。
- 每个批处理输入文件中的事件有所不同;
我正在考虑应用诸如“groupByKey”和“partition”之类的转换,但是似乎我必须在开发时知道确定分区所需的事件数量(和类型)。
你们有一个好主意来显着地进行分区吗?意味着分区可以在运行时确定?