我试图通过将csv文件转换为s3文件来将它从txt存储桶移动到另一个存储桶,但是我得到了各种各样的分隔符问题。因此,我决定将csv转换为拼图文件,但我不确定这样做是否正确。这是转换为拼图文件的正确方法吗?我们有另一个ETL (胶水爬虫)来拾取这些拼图文件并将它们填充到redshift中。我可以在s3存储桶中看到拼图文件,但在红移数据库中看不到。所以我想知道这个文件是否被正确地转换成了拼图。
bucket = 'source bucket'
file = 'file path'
obj = client.get_object(Bucket= bucket, Key= file)
initial_df = pd.read_csv(obj['Body'])
file = 'file.parquet'
bucketdest = 'destinationbucketname'
buf = BytesIO()
initial_df.to_parquet(buf, index=False)
s3_file = 'path'+file
print(s3_file)
buf.seek(0)
s3 = session2.resource('s3')
s3.Object(bucketdest, s3_file).put(Body=buf.getvalue())
print('loaded')
发布于 2020-11-16 10:59:39
为了将Pandas DF保存为parquet格式,您需要运行以下命令
df.to_parquet('C:\\Desktop\myfile.parquet')
您可能会得到下面的错误。
ImportError:找不到可用的引擎;已尝试使用:'pyarrow','fastparquet‘。拼花地板的支撑需要pyarrow或快速镶木地板
安装pyarrow或fastparquet库来解决这个问题
pip install pyarrow
pip install fastparquet
https://stackoverflow.com/questions/64815070
复制