【发布时间】:2021-02-10 11:39:52
【问题描述】:
我想为从我的 python 脚本粘合作业到 DDB 的调用添加一个速率限制器,并减轻它的调用量峰值。我实现了类似以下内容,就像https://pypi.org/project/ratelimiter/ 中建议的那样:
from ratelimiter import RateLimiter
rate_limiter = RateLimiter(max_calls=10, period=1)
for i in range(100):
with rate_limiter:
do_something()
但出现以下异常:
rmation.doAs(UserGroupInformation.java:1844) at org.apache.spark.deploy.yarn.ApplicationMaster.doAsUser(ApplicationMaster.scala:778) at org.apache.spark.deploy.yarn.ApplicationMaster.run(ApplicationMaster .scala:244) at org.apache.spark.deploy.yarn.ApplicationMaster$.main(ApplicationMaster.scala:803) at org.apache.spark.deploy.yarn.ApplicationMaster.main(ApplicationMaster.scala) 原因:org .apache.spark.SparkUserAppException:用户应用程序在 org.apache.spark.deploy.PythonRunner.main(PythonRunner.scala) 的 org.apache.spark.deploy.PythonRunner$.main(PythonRunner.scala:106) 处以 1 退出sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method。在 org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:684) 21/02/10 03:05:08 处调用(Method.java:498) 信息ApplicationMaster:删除暂存目录 hdfs://20.0.18.119:8020/user/root/.sparkStaging/application_1612925905975_0002 21/02/10 03:05:08 INFO ShutdownHookManager: 称为 End of LogType:stderr LogType:stdout 日志上传时间的关闭挂钩:2 月 10 日星期三 03:05:10 +0000 2021 LogLength:253 日志内容:解析纱线日志得到错误消息:ModuleNotFoundError: No module named 'ratelimiter' Traceback(最近一次调用最后一次):文件“script_2021-02-10-03 -04-33.py",第 10 行,从 ratelimiter import RateLimiter ModuleNotFoundError: No module named 'ratelimiter' End of LogType:stdout
如何导入 ratelimiter?
谢谢!
【问题讨论】:
-
ratelimiter不是标准的 Python 模块。您是否按照here 的说明添加了它? -
很高兴它成功了。如果您不介意我可以提供更多信息的答案?
-
当然可以。谢谢@Marcin!然后我会删除我的
标签: java python amazon-web-services aws-glue rate-limiting