- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个 Python Apache Beam 作业,该作业在有界数据集上使用 session 窗口。它适用于小型数据集,但当我增加输入数据的大小时,这项工作就会终止。
作业 ID 为 2019-06-10_07_28_32-2942508228086251217
.
elements = (p | 'IngestData' >> beam.io.Read(big_query_source))
elements | 'AddEventTimestamp' >> beam.ParDo(AddTimestampDoFn()) \
| 'SessionWindow' >> beam.WindowInto(window.Sessions(10 * 60)) \
| 'CreateTuple' >> beam.Map(lambda row: (row['id'], {'attribute1': row['attribute1'], 'date': row['date']})) \
| 'GroupById1' >> beam.GroupByKey() \
| 'AggregateSessions' >> beam.ParDo(AggregateTransactions()) \
| 'MergeWindows' >> beam.WindowInto(window.GlobalWindows()) \
| 'GroupById2' >> beam.GroupByKey() \
| 'MapSessionsToLists' >> beam.Map(lambda x: (x[0], [y for y in x[1]])) \
| 'BiggestSession' >> beam.ParDo(MaximumSession()) \
| "PrepForWrite" >> beam.Map(lambda x: x[1].update({"id": x[0]}) or x[1]) \
| 'WriteResult' >> WriteToText(known_args.output)
DoFn 类为
class AddTimestampDoFn(beam.DoFn):
def process(self, element):
date = datetime.datetime.strptime(element['date'][:-4], '%Y-%m-%d %H:%M:%S.%f')
unix_timestamp = float(date.strftime('%s'))
yield beam.window.TimestampedValue(element, unix_timestamp)
class AggregateTransactions(beam.DoFn):
def process(self, element, window=beam.DoFn.WindowParam):
session_count = len(element[1])
attributes = list(map(lambda row: row['attribute1'], element[1]))
std = np.std(amounts)
return [(element[0], {'session_count': session_count, 'session_std': std, 'window_start': window.start
.to_utc_datetime()
.strftime('%d-%b-%Y %H:%M:%S')})]
class MaximumSession(beam.DoFn):
def process(self, element):
sorted_counts = sorted(element[1], key = lambda x: x['session_count'], reverse=True)
return [(element[0], {'session_count': sorted_counts[0]['session_count'],
'session_std': sorted_counts[0]['session_std'],
'window_start_time': sorted_counts[0]['window_start']})]
作业失败并给出以下错误:The job failed because a work item has failed 4 times. Look in previous log entries for the cause of each one of the 4 failures. For more information, see https://cloud.google.com/dataflow/docs/guides/common-errors. The work item was attempted on these workers:
stackdriver 上的特定工作日志没有任何暗示。我只是得到这些条目的组合:
processing lull for over 431.44 seconds in state process-msecs in step s5
Refusing to split <dataflow_worker.shuffle.GroupedShuffleRangeTracker object at 0x7f82e970cbd0> at '\n\xaaG\t\x00\x01': proposed split position is out of range
Retry with exponential backoff: waiting for 4.69305060273 seconds before retrying lease_work because we caught exception: SSLError: ('The read operation timed out',)
其余条目仅供引用。
该特定工作线程的最新内存使用量为 43413 MB。因为我正在使用 n1-highmem-32
机器,我不认为内存可能是一个问题。
在客户端,Cloud Shell,我触发了这项工作,我刚刚得到了很多
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 1/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 2/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 1/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 1/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 2/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 2/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 1/2)
INFO:oauth2client.transport:Refreshing due to a 401 (attempt 2/2)
在作业崩溃之前。
有什么想法吗?
谢谢
最佳答案
默认情况下,如果在 BATCH 模式下出现任何错误,Dataflow 会重试管道 4 次,而在 STREAM 模式下运行时会无限期重试管道。
请在用于管道的计算引擎计算机的堆栈驱动程序中创建仪表板,以分析正在发生多少内存、CPU 消耗和 IO 操作。仔分割析上述因素后,应该提高管道的配置。
请确保所有转换都根据您提供的数据正常工作,并应用异常处理。
关于python - 在大型数据集上执行 session 窗口时 Apache Beam 作业失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56531872/
我正在使用 Apache Beam 从 Kafka 读取数据。由于乱序写入 Kafka,我想使用有效负载中的事件时间戳而不是默认的 LogAppendTime。 我看到了一个解决方案 Apache B
我有一个通用输入请求,其中包含需要转换和保存的输入。如果需要转换生成的输出,我会为它实现一个新的处理器(转换器)。 class Request { Input input; Transform
我已经在 Apache Beam 上工作了几天。我想快速迭代我正在工作的应用程序,并确保我正在构建的管道没有错误。在 Spark 中我们可以使用 sc.parallelise当我们应用一些 Actio
我有一个简单的波束管道,它使用带有 tf 变换的通用句子编码器获取一些文本并获得嵌入。与使用 tf 1 制作的演示非常相似。 import tensorflow as tf import apache
使用Apache Beam丰富数据时,对每个数据项都进行一次API调用会不会出错? (我是 Apache Beam 的新手) 最佳答案 不,但您可以批处理 API 调用以获得更好的性能。查看 this
我的任务是为一款应用添加支持,以便通过 Android 上的“NFC”在设备之间传输大型数据文件(数十兆字节)。 我知道 Android 上真正的 NFC 非常慢,但我知道 ICS 支持将批量数据传输
NFC:S-beam 和 Android beam 有什么区别?有人可以解释 Wifi-Direct/Bluetooth 激活和传输数据的确切流程吗? 最佳答案 在 stackexchanged 上解
我正在使用 Beam 管道计算流式数据的电话号码频率。我使用的滑动窗口每 5 分钟重复一次,总周期为 15 分钟,因此正如预期的那样,对于某些输入,当输入落在多个窗口中时,我会得到多个输出。 计算出现
输入的PCollection是http requests,是一个有界数据集。我想在 ParDo 中进行异步 http 调用(Java),解析响应并将结果放入输出 PCollection 中。我的代码如
输入的PCollection是http requests,是一个有界数据集。我想在 ParDo 中进行异步 http 调用(Java),解析响应并将结果放入输出 PCollection 中。我的代码如
在使用 PAssert 为我的光束管道编写单元测试时,管道输出对象很好,但在与以下断言错误进行比较时测试失败: java.lang.AssertionError: Decode pubsub mess
我正在尝试从 here 运行 Wordcount 演示与 Samza Runner。这是我的build.gradle plugins { id 'eclipse' id 'java' id
我正在尝试使用 Beam 和 Flink runner 设置流处理管道。 Flink 是一个本地 session 部署,包含以下 docker-compose 文件: version: "3" ser
在尝试编译我的 Phoenix 项目的发行版时,出现以下错误: $ mix release .... ==> Generated .appup for myapp 0.0.1 -> 0.0.2 ===
我正在尝试使用 Apache beam-dataflow 连接到安装在云实例中的配置单元实例。当我运行它时,出现以下异常。当我使用 Apache Beam 访问此数据库时,就会发生这种情况。我见过很多
我正在使用 zsh,并且我已经安装了 gcloud,以便通过我的 Mac 上的本地终端与 GCP 进行交互。我遇到了这个错误“zsh:找不到匹配项:apache-beam[gcp]”。但是,当我在 G
主要记录两种不同的beam search版本 版本一 使用类似层次遍历的方式进行搜索,用队列进行维护,每次循环对当前层的所有节点进行搜索,这些节点每个分别对应topk个节点作为下一层候选节点,取
我的目标是创建一个每秒调用后端(云托管)服务最多次数的管道......我该如何实现? 背景故事:想象一下后端服务使用单个输入调用并返回单个输出。该服务具有与其关联的配额,允许每秒最大请求数(假设每秒
我想写入一个 gs 文件,但在编译时我不知道文件名。它的名称基于在运行时定义的行为。我该如何继续? 最佳答案 如果你使用 Beam Java,你可以使用 FileIO.writeDynamic()为此
我试图弄清楚如何使用Apache Beam读取大型CSV文件。 “大”是指几千兆字节(因此一次将整个CSV读取到内存中是不切实际的)。 到目前为止,我已经尝试了以下选项: 使用TextIO.read(
我是一名优秀的程序员,十分优秀!