使s3文件对象读写更简单,支持raw file、csv、parquet、pandas.dataframe。

s3iotools的Python项目详细描述


Documentation Statushttps://travis-ci.org/MacHu-GWU/s3iotools-project.svg?branch=masterhttps://codecov.io/gh/MacHu-GWU/s3iotools-project/branch/master/graph/badge.svghttps://img.shields.io/pypi/v/s3iotools.svghttps://img.shields.io/pypi/l/s3iotools.svghttps://img.shields.io/pypi/pyversions/s3iotools.svghttps://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Document-blue.svghttps://img.shields.io/badge/Link-API-blue.svghttps://img.shields.io/badge/Link-Source_Code-blue.svghttps://img.shields.io/badge/Link-Install-blue.svghttps://img.shields.io/badge/Link-GitHub-blue.svghttps://img.shields.io/badge/Link-Submit_Issue-blue.svghttps://img.shields.io/badge/Link-Request_Feature-blue.svghttps://img.shields.io/badge/Link-Download-blue.svg

欢迎使用s3iotools文档

使用量

将本地文件复制到s3并将文件对象从s3下载到本地很容易:

froms3iotoolsimportS3FileObjects3obj=S3FileObject(bucket="my-bucket",key="hello.txt",path="hello.txt")# get started, now we don't have file either on local or on s3ifs3obj.path_obj.exists():s3obj.path_obj.remove()asserts3obj.exists_on_local()isFalseasserts3obj.exists_on_s3()isFalses3obj.path_obj.write_text("hello world",encoding="utf-8)asserts3obj.exists_on_local()isTrues3obj.copy_to_s3()asserts3obj.exists_on_s3()isTrues3obj.path_obj.remove()asserts3obj.exists_on_local()isFalses3obj.copy_to_local()asserts3obj.exists_on_local()isTrue

您可以轻松地操作支持s3的pandas.DataFrame

importboto3importpandasaspdfroms3iotoolsimportS3Dataframesession=boto3.Session(profile_name="xxx")s3=session.resource("s3")bucket_name="my-bucket"s3df=S3Dataframe(s3_resource=s3,bucket_name=bucket_name)s3df.df=pd.DataFrame(...)s3df.to_csv(key="data.csv")s3df.to_csv(key="data.csv.gz",gzip_compressed=True)s3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.csv")s3df_new.read_csv()s3df_new.df# access datas3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.csv.gz")s3df_new.read_csv(gzip_compressed=True)s3df_new.df# access data

json io类似。

s3df=S3Dataframe(s3_resource=s3,bucket_name=bucket_name)s3df.df=pd.DataFrame(...)s3df.to_json(key="data.json.gz",gzip_compressed=True)s3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.json.gz")s3df_new.read_json(gzip_compressed=True)s3df_new.df# access data

parquet是一种列存储格式,对olap查询非常有效。您可以将数据放在s3上,然后使用aws athena查询拼花文件。s3iotools的拼花IO很简单:

s3df=S3Dataframe(s3_resource=s3,bucket_name=bucket_name)s3df.df=pd.DataFrame(...)s3df.to_parquet(key="data.parquet",compression="gzip")s3df_new=S3Dataframe(s3_resource=s3,bucket_name=bucket_name,key="data.parquet")s3df_new.read_parquet()s3df_new.df# access data

s3iotools不会自动安装pyarrow,您可以使用pip install pyarrow安装它。

安装

s3iotools在pypi上发布,所以您只需要:

$ pip install s3iotools

要升级到最新版本:

$ pip install --upgrade s3iotools

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
eclipse AST和JDT Java模型之间的主要区别是什么?   java访问jar文件中的外部库(jmf)   java读取简单json库文件   安全验证数字签名pdf java IText   java如何防止有人在JSP/Servlet中从浏览器修改输入表单参数   java有没有办法在JTree中为多个根使用扩展图标?   当我在IntelliJ IDEA下使用Lombok时,java无法编译项目   java Log4j不向linux系统日志发送日志   Java中的字符转换正则表达式   java如何在Glide上显示gif   java如何解析正弦函数?   slick2d Java slick:翻译   datetime java DateFormat给出了奇怪的格式结果   java如何让一个简单的HelloWorld应用程序在Spring Boot中运行   java如何在带有JUnit的Maven项目中通过自定义类加载器两次加载同一类   java PDFBox。生成具有相同图像的多页文档   JavaJSF外部链接   java Google NLP api无法找到TLS ALPN提供商;没有可用的工作网络、密码或码头NPN/ALPN   面向对象的纸牌游戏的java类图,可处理多达21点的纸牌