小编ddx*_*ddx的帖子

Azure Functions 中的 1.5 GB 内存限制是否仅限于整个 Function App 或每个函数调用?

我正在设置一个 Azure Function 应用程序,该应用程序具有多个同时或大约同时触发的计时器触发器。我对这里的措辞感到困惑: https: //learn.microsoft.com/fi-fi/azure/azure-functions/functions-scale

消耗计划中的 Functions 主机的每个实例仅限于 1.5 GB 内存和 1 个 CPU。主机的实例是整个函数应用程序,这意味着函数应用程序中的所有函数共享实例内的资源并同时扩展。

这是否意味着使用计时器触发器执行的每个脚本都会分配 1.5 GB 内存,或者是否意味着所有同时运行的脚本共享 1.5 GB 内存?

azure azure-functions serverless

5
推荐指数
2
解决办法
1万
查看次数

如何加速熊猫字符串函数?

我正在使用 Pandas 向量化 str.split() 方法来提取从“~”上的拆分​​返回的第一个元素。我还尝试将 df.apply() 与 lambda 和 str.split() 一起使用来产生等效的结果。使用 %timeit 时,我发现 df.apply() 的执行速度比矢量化版本快。

我读到的关于矢量化的所有内容似乎都表明第一个版本应该有更好的性能。有人可以解释为什么我得到这些结果吗?例子:


     id     facility      
0   3466     abc~24353  
1   4853     facility1~3.4.5.6   
2   4582     53434_Facility~34432~cde   
3   9972     facility2~FACILITY2~343
4   2356     Test~23 ~FAC1  
Run Code Online (Sandbox Code Playgroud)

上面的数据框有大约 500,000 行,我也测试了大约 100 万行,结果相似。以下是一些示例输入和输出:

矢量化


     id     facility      
0   3466     abc~24353  
1   4853     facility1~3.4.5.6   
2   4582     53434_Facility~34432~cde   
3   9972     facility2~FACILITY2~343
4   2356     Test~23 ~FAC1  
Run Code Online (Sandbox Code Playgroud)

Lambda 应用

In [1]: %timeit df['facility'] = df['facility'].str.split('~').str[0]
1.1 s ± 54.4 ms per loop (mean ± std. dev. of 7 runs, …
Run Code Online (Sandbox Code Playgroud)

python string split vectorization pandas

2
推荐指数
1
解决办法
2034
查看次数

语言工作者如何使用 Python 在 Azure Functions 中工作?

我正在使用 Azure Functions 处理 ETL 项目,我从 blob 存储中提取数据,在 Python 和 Pandas 中转换数据,并使用 Pandas to_sql() 加载数据。我正在尝试通过使用 asyncio 和语言工作者来提高这个过程的效率。

我有点困惑,因为我的印象是 asyncio 使用一个线程工作,但是 Azure Functions 文档说,如果更改配置,您可以使用多种语言工作器,甚至不使用 async 关键字的方法也可以运行在线程池中。

这是否意味着如果我不使用 async 关键字,我的方法将使用语言工作者并发运行?我是否必须使用 asyncio 来使用语言工作者?

此外,文档说 Azure Functions 最多可以扩展到 200 个实例。如果最多只允许 10 名语言工作者,我如何扩展到这么多实例?

编辑:谢谢阿纳托利。只是为了澄清,如果我有一个带有以下代码的定时器触发器:

import azure.functions as func
from . import client_one_etl
from . import client_two_etl

def main(mytimer: func.TimerRequest) -> None:
    client_one_etl.main()
    client_two_etl.main()
Run Code Online (Sandbox Code Playgroud)

如果我增加了语言工作者的数量,这是否意味着即使不使用client_one_etl.main()client_two_etl.main()它们也会自动在单独的线程中运行asyncio?而如果client_two_etl.main()需要client_one_etl.main()在执行前完成,我需要使用async await防止它们并发运行吗?

对于单独的实例,如果client_one_etl.main()并且client_two_etl.main()不相互依赖,是否意味着我可以在一个 Azure Function 应用程序中将它们作为在它们自己的 …

python multithreading asynchronous azure azure-functions

2
推荐指数
1
解决办法
2116
查看次数

您可以在大样本量上使用隔离森林算法吗?

我一直在使用sklearn.ensemble.IsolationForest隔离林的 scikit learn 实现来检测数据集中的异常情况,数据范围从数百行到数百万行数据。它似乎运行良好,我已将其覆盖max_samples为一个非常大的整数来处理一些较大的数据集(本质上不使用子采样)。我注意到原始论文指出,较大的样本量会产生淹没和掩盖的风险。

如果隔离森林看起来工作正常,是否可以在大样本量上使用它?我尝试使用较小的训练max_samples,但测试产生了太多异常情况。我的数据确实开始增长,我想知道对于如此大的样本量,不同的异常检测算法是否会更好。

python algorithm machine-learning sampling scikit-learn

1
推荐指数
1
解决办法
2415
查看次数