列具有拼花文件的无效长度类型错误

2024-04-23 09:55:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个拼花文件列表,我正在从一个s3木桶移动到另一个木桶。 在将拼花文件复制到目标桶之前,我添加了两列。 我们有一个glu爬虫程序,它从目标s3存储桶中拾取数据,并用红移填充数据。 当我以红移方式查询表时,我得到一个错误“列'xyz'的类型长度无效。文件中应为:7 len:6” 出现错误的列的数据类型为decimal(15,7) 下面是我的代码,我首先将所有拼花文件读取到pandas dataframe,然后添加额外的列并将它们写回拼花格式。我用谷歌搜索错误,没有任何帮助。 我的拼花列表是所有拼花文件的列表

import pyarrow as pa
import pyarrow.parquet as pq
    for file in my_parquet_list: 
        bucket = 'source_bucket_name'
        buffer = io.BytesIO()
        s3 = session.resource('s3')
        s3_obj = s3.Object(bucket,file)
        s3_obj.download_fileobj(buffer)
        df = pd.read_parquet(buffer, engine='pyarrow')
        df["col_new"] = 'aaa'
        df["date"] = datetime.datetime.utcnow()
        buffer = io.BytesIO()
        table = pa.Table.from_pandas(df)
        pq.write_table(table, buffer)
        new_file_name = file.split('/')[-1]
        bucketdest = 'destination bucket name'
        s3_file = 'folder path/'+new_file_name
        print(s3_file)
        s3 = session2.resource('s3')
        s3.Object(bucketdest, s3_file).put(Body=buffer.getvalue())
        print('loaded')

Tags: 文件namedf列表news3bucketbuffer