小编Kin*_*ngz的帖子

AWS lambda中的Pandas出现numpy错误

我一直在尝试在导入pandas的AWS Lambda中运行我的代码.所以这就是我所做的.我有一个python文件,其中包含一个简单的代码如下(此文件具有lambda处理程序)

import json
print('Loading function')
import pandas as pd
def lambda_handler(event, context):
    return "Welcome to Pandas usage in AWS Lambda"
Run Code Online (Sandbox Code Playgroud)
  1. 我已将此python文件与numpy,pandas和pytz库一起压缩为部署包(在Amazon EC2 linux机器中完成所有这些)
  2. 然后将包上传到S3
  3. 创建了一个lambda函数(runtime = python3.6)并从S3上传了部署包

但是当我在AWS Lambda中测试lambda函数时,我得到以下错误:

Unable to import module 'lambda_function': Missing required dependencies ['numpy']
Run Code Online (Sandbox Code Playgroud)

我已经在压缩包中有numpy,但我仍然得到这个错误.我试着按照Pandas和AWS Lambda给出的提示但没有运气.

有没有人遇到过同样的问题.非常感谢任何暗示或建议来解决这个问题.

谢谢

python numpy amazon-s3 pandas aws-lambda

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

是否可以从 sql alchemy 会话中检索引擎值

首先我创建一个会话如下:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
some_engine = create_engine('my_engine_string')
Session = sessionmaker(bind=some_engine)
session = Session()
Run Code Online (Sandbox Code Playgroud)

然后我将此会话作为参数发送给方法

def example(session):
    print("you created a session!")
Run Code Online (Sandbox Code Playgroud)

是否可以some_engine从方法session内部获取的值example?没有实际传递some_enginemy_engine_stringexample方法。

如下:

def example(session):
   print("you created a session!")
   engine = <using session get the value of `some_engine`>
   print("the engine is retrieved from session")
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

来自pandas数据帧的多组重复记录

如何从数据框中获取所有现有的重复记录集(基于列)?

我有一个数据帧如下:

flight_id | from_location  | to_location |  schedule |  
1         |   Vancouver    |   Toronto   |   3-Jan   |  
2         |   Amsterdam    |   Tokyo     |   15-Feb  |  
4         |   Fairbanks    |   Glasgow   |   12-Jan  |  
9         |   Halmstad     |   Athens    |   21-Jan  |  
3         |   Brisbane     |   Lisbon    |   4-Feb   |  
4         | Johannesburg   |   Venice    |   12-Jan  |
9         | LosAngeles     |  Perth      |   3-Mar   |
Run Code Online (Sandbox Code Playgroud)

这里的flight_id是我需要检查重复项的列.并且有两组重复.

此特定示例的输出应为 - [(2,5),(3,6)].记录索引值的元组列表

python group-by dataframe pandas pandas-groupby

10
推荐指数
3
解决办法
922
查看次数

再次启动现有但已退出的气流容器时,Fernet 密钥无效

我将 dockerized 气流服务FERNET_KEY作为使用.env文件导出的环境变量(其中还包括除 之外的其他环境变量FERNET_KEY)。

当我构建和运行 docker 容器时,气流服务按预期运行,然后我转到连接并在气流 UI 中设置我的 AWS 连接,如此处提到的https://airflow.apache.org/howto/connection/aws。 HTML。到现在为止还挺好。现在,我故意停止 docker 容器,然后再次启动容器并转到气流 UI--> 连接以查看我的 AWS 连接设置是否仍然存在(这是我在停止容器之前配置的)。

但是,这就是发生的事情。当我去查看aws_default气流 UI 中的设置时,我看到如下错误

Ooops.

                      ____/ (  (    )   )  \___
                     /( (  (  )   _    ))  )   )\
                   ((     (   )(    )  )   (   )  )
                 ((/  ( _(   )   (   _) ) (  () )  )
                ( (  ( (_)   ((    (   )  .((_ ) .  )_
               ( (  )    ( …
Run Code Online (Sandbox Code Playgroud)

encryption cryptography docker airflow

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

基于事件触发和运行气流任务将文件放入 S3 存储桶

是否可以仅在发生特定事件(例如将文件放入特定 S3 存储桶的事件)时运行气流任务。类似于 AWS Lambda 事件的内容

有,S3KeySensor但我不知道它是否符合我的要求(仅在事件发生时运行 Task)

这是使问题更清楚的示例:

我有一个传感器对象如下

sensor = S3KeySensor(
    task_id='run_on_every_file_drop',
    bucket_key='file-to-watch-*',
    wildcard_match=True,
    bucket_name='my-sensor-bucket',
    timeout=18*60*60,
    poke_interval=120,
    dag=dag
)
Run Code Online (Sandbox Code Playgroud)

使用上述传感器对象,传感器任务的气流行为如下:

  • 如果在气流管理 UI 中my-sensor-bucket切换 DAG 之前已经存在与 S3 存储桶中的通配符匹配的对象名称ON,则运行该任务(由于过去的 s3 对象的存在,我不想运行该任务)
  • 运行一次后,每当有新的 S3 文件对象删除时,传感器任务将不会再次运行(我想每次在存储桶中删除一个新的 S3 文件对象时,都运行 DAG 中的传感器任务和后续任务my-sensor-bucket
  • 如果您配置调度程序,任务将基于调度而不是基于事件运行。所以在这种情况下调度程序似乎不是一个选项

我试图了解气流中的任务是否只能基于调度(如 cron 作业)或传感器(仅基于传感标准一次)运行,还是不能像基于事件的管道(类似于 AWS Lambda 的东西)那样设置

amazon-s3 airflow airflow-scheduler apache-airflow-xcom airflow-operator

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