Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据字节大小拆分数据帧_Python_Python 2.7_Pandas_Amazon Redshift - Fatal编程技术网

Python 如何根据字节大小拆分数据帧

Python 如何根据字节大小拆分数据帧,python,python-2.7,pandas,amazon-redshift,Python,Python 2.7,Pandas,Amazon Redshift,我想将大熊猫数据框中的数据插入红移。但是,当我尝试执行insert语句时,出现以下错误: 错误:语句太大。语句大小:152681090字节。 允许的最大值:16777216字节 为了克服这个问题,我想将数据帧分割成允许大小的块,并为每个块执行单独的insert语句。如何准确地将数据帧划分为16777216字节以内的行块 如果这是不可能的,有没有其他方法可以将如此大的数据帧中的数据插入到红移中 谢谢 DataFrame.to_sql(name, con, flavor=None, schema=N

我想将大熊猫数据框中的数据插入红移。但是,当我尝试执行insert语句时,出现以下错误:

错误:语句太大。语句大小:152681090字节。 允许的最大值:16777216字节

为了克服这个问题,我想将数据帧分割成允许大小的块,并为每个块执行单独的insert语句。如何准确地将数据帧划分为16777216字节以内的行块

如果这是不可能的,有没有其他方法可以将如此大的数据帧中的数据插入到红移中

谢谢

DataFrame.to_sql(name, con, flavor=None, schema=None, if_exists=’fail’, index=True, index_label=None, chunksize=None, dtype=None)[source]

根据文档,您可以指定chunksize,以便使用5-10k并了解其工作原理

chunksize : int, default None
If not None, then rows will be written in batches of this size at a time. If None, all rows will be written at once.
  • 另一个选项是使用此包装器,以便中间层为s3

  • 因此,如果加载到现有表中,则可以按照以下步骤进行操作:从new_表中插入数据(块数据表),插入到现有表中(使用这种类型的“temp”表,加载速度非常快,也进行了预处理,redshift在更新时会创建临时表,这非常快)

  • 另外,如果您提供代码示例和数据,我可以旋转一个集群并提供详细结果,但当前信息将有助于解决块问题

    根据文档,您可以指定chunksize,以便使用5-10k并了解其工作原理

    chunksize : int, default None
    If not None, then rows will be written in batches of this size at a time. If None, all rows will be written at once.
    
  • 另一个选项是使用此包装器,以便中间层为s3

  • 因此,如果加载到现有表中,则可以按照以下步骤进行操作:从new_表中插入数据(块数据表),插入到现有表中(使用这种类型的“temp”表,加载速度非常快,也进行了预处理,redshift在更新时会创建临时表,这非常快)


  • 另外,如果您提供代码示例和数据,我可以旋转一个集群并提供详细结果,但当前信息将有助于回答chunk问题。

    检查此答案中的行谢谢,我看到了。但我不知道我想要多少行。我只知道每个块最多应该有16777216个字节。每一行可能有不同的字节大小。好的,您可以使用to_sql进行写入,并在那里定义块大小,如下所示:data.to_sql('df',engine,chunksize=10000),或者您可以循环遍历每一行并添加到redshiftcheck中。请为行检查此答案谢谢,我看到了。但我不知道我想要多少行。我只知道每个块最多应该有16777216个字节。每行可能有不同的字节大小。好的,您可以使用to_sql进行写入,并在其中定义块大小,如下所示:data.to_sql('df',engine,chunksize=10000),或者您可以循环遍历每行并添加到红移