我一直在尝试在导入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)
但是当我在AWS Lambda中测试lambda函数时,我得到以下错误:
Unable to import module 'lambda_function': Missing required dependencies ['numpy']
Run Code Online (Sandbox Code Playgroud)
我已经在压缩包中有numpy,但我仍然得到这个错误.我试着按照Pandas和AWS Lambda给出的提示但没有运气.
有没有人遇到过同样的问题.非常感谢任何暗示或建议来解决这个问题.
谢谢
首先我创建一个会话如下:
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_engine或my_engine_string到example方法。
如下:
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) 如何从数据框中获取所有现有的重复记录集(基于列)?
我有一个数据帧如下:
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)].记录索引值的元组列表
我将 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) 是否可以仅在发生特定事件(例如将文件放入特定 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)
使用上述传感器对象,传感器任务的气流行为如下:
my-sensor-bucket切换 DAG 之前已经存在与 S3 存储桶中的通配符匹配的对象名称ON,则运行该任务(由于过去的 s3 对象的存在,我不想运行该任务)my-sensor-bucket)我试图了解气流中的任务是否只能基于调度(如 cron 作业)或传感器(仅基于传感标准一次)运行,还是不能像基于事件的管道(类似于 AWS Lambda 的东西)那样设置
amazon-s3 airflow airflow-scheduler apache-airflow-xcom airflow-operator
python ×3
airflow ×2
amazon-s3 ×2
pandas ×2
aws-lambda ×1
cryptography ×1
dataframe ×1
docker ×1
encryption ×1
group-by ×1
numpy ×1
sqlalchemy ×1