在Lambda中读取AWS S3 CSV列名称

J

我正在尝试编写一个脚本,该脚本从AWS Aurora Serverless MySQL数据库表收集架构,从AWS S3存储桶中存储的CSV文件收集列标题,并且仅在其列标题是子集的情况下才将CSV写入表模式的名称(例如,如果表字段为['Name','DOB','Height'],而CSV字段为['Name','DOB','Weight'],则脚本将引发异常。

到目前为止,我已经在AWS Lambda函数中成功返回了表架构,并成功读取了CSV文件,但是我不确定如何从S3对象获取列标题。

def return_db_schema(event):
    schema = []
    conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)
    with conn.cursor() as cur:
        cur.execute('SHOW columns FROM SampleTable')
        conn.commit()
        cur.close()
        for row in cur:
            schema.append(list(row)[0])
        return schema

def return_csv_cols(event):
    s3 = boto3.client('s3')
    tester = s3.get_object(Bucket=s3_bucket, Key=test_key)
    contents = tester['Body'].read()

def main(event, context):
    print(return_db_schema(event))
    print()
    print(return_csv_cols(event))

我不确定如何从此处继续(例如,是否有一种方法可以在不将CSV加载到pandas DataFrame并调用df.columns()或类似的方式的情况下进行此操作?)。

J

我已经用以下代码解决了这个问题:

    s3 = boto3.client('s3')
    tester = s3.get_object(Bucket=s3_bucket, Key=test_key)
    contents = tester['Body'].read().decode('UTF-8')
    cols = contents.split('\n')[0].split(',')
    return cols, contents

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Lambda:如何在S3存储桶中读取CSV文件,然后将其上传到另一个S3存储桶?

来自分类Dev

如何使用AWS S3 SQL语法查询带有空格的列名称?

来自分类Dev

从Lambda的/ tmp文件夹中读取csv文件,对其进行过滤并将其上传到s3

来自分类Dev

通读s3中的CSV文件

来自分类Dev

读取以数字开头的CSV列名称(Python)

来自分类Dev

读取以数字开头的CSV列名称(Python)

来自分类Dev

如何使用lambda函数和boto3从s3存储桶读取csv文件?

来自分类Dev

s3上的代码优化读取csv并提取回s3存储桶

来自分类Dev

尝试将CSV写入S3的Lambda S3内存错误

来自分类Dev

R中的read.csv无法正确读取列名称

来自分类Dev

AWS S3 的保留参数名称列表

来自分类Dev

无法使用R从S3读取csv

来自分类Dev

AWS Python Lambda函数-将UTF-8编码的CSV写入S3

来自分类Dev

Lambda 函数写入 csv 并上传到 S3

来自分类Dev

AWS S3 CSV导出到Wordpress

来自分类Dev

Django:将CSV文件上传到AWS S3

来自分类Dev

在R中从AWS S3读取gzip文件的内容

来自分类Dev

使用boto从S3中按名称删除文件

来自分类Dev

策略中的S3存储桶名称,terraform

来自分类Dev

使用boto从S3中按名称删除文件

来自分类Dev

使用Lambda从S3读取数据

来自分类Dev

尝试从Node.js中的AWS Lambda函数读取S3存储桶的内容时未获得结果

来自分类Dev

获取AWS S3中所有存储桶的名称和计数

来自分类Dev

在AWS S3受让人列表中添加所有者名称

来自分类Dev

使用Scala中的AWS Glue在S3中加载CSV文件

来自分类Dev

R:读取具有行和列名称的csv

来自分类Dev

AWS Lambda S3访问被拒绝

来自分类Dev

使用Apache Airflow无需下载即可编辑存储在AWS S3中的CSV

来自分类Dev

从AWS S3读取CSV文件时获取“ Errno :: ENOENT:没有这样的文件或目录@ rb_sysopen”

Related 相关文章

  1. 1

    AWS Lambda:如何在S3存储桶中读取CSV文件,然后将其上传到另一个S3存储桶?

  2. 2

    如何使用AWS S3 SQL语法查询带有空格的列名称?

  3. 3

    从Lambda的/ tmp文件夹中读取csv文件,对其进行过滤并将其上传到s3

  4. 4

    通读s3中的CSV文件

  5. 5

    读取以数字开头的CSV列名称(Python)

  6. 6

    读取以数字开头的CSV列名称(Python)

  7. 7

    如何使用lambda函数和boto3从s3存储桶读取csv文件?

  8. 8

    s3上的代码优化读取csv并提取回s3存储桶

  9. 9

    尝试将CSV写入S3的Lambda S3内存错误

  10. 10

    R中的read.csv无法正确读取列名称

  11. 11

    AWS S3 的保留参数名称列表

  12. 12

    无法使用R从S3读取csv

  13. 13

    AWS Python Lambda函数-将UTF-8编码的CSV写入S3

  14. 14

    Lambda 函数写入 csv 并上传到 S3

  15. 15

    AWS S3 CSV导出到Wordpress

  16. 16

    Django:将CSV文件上传到AWS S3

  17. 17

    在R中从AWS S3读取gzip文件的内容

  18. 18

    使用boto从S3中按名称删除文件

  19. 19

    策略中的S3存储桶名称,terraform

  20. 20

    使用boto从S3中按名称删除文件

  21. 21

    使用Lambda从S3读取数据

  22. 22

    尝试从Node.js中的AWS Lambda函数读取S3存储桶的内容时未获得结果

  23. 23

    获取AWS S3中所有存储桶的名称和计数

  24. 24

    在AWS S3受让人列表中添加所有者名称

  25. 25

    使用Scala中的AWS Glue在S3中加载CSV文件

  26. 26

    R:读取具有行和列名称的csv

  27. 27

    AWS Lambda S3访问被拒绝

  28. 28

    使用Apache Airflow无需下载即可编辑存储在AWS S3中的CSV

  29. 29

    从AWS S3读取CSV文件时获取“ Errno :: ENOENT:没有这样的文件或目录@ rb_sysopen”

热门标签

归档