标签: chunks

在R中将大文件分割成小文件

我需要将一个大文件(14 GB)分成较小的文件。该文件的格式为txt,制表符为“;” 我知道它有 70 列(字符串、双精度)。我想读取 100 万个并将它们保存在不同的文件中,file1,file2 ... fileN。

在@MKR的帮助下

但过程非常慢,我尝试使用 fread,但这是不可能的。

我该如何优化这段代码?

新代码

chunkSize <- 10000
conex <- file(description = db, open = "r")
data <- read.table(conex, nrows = chunkSize, header=T, fill=TRUE, sep =";")

index <- 0
counter <- 0
total <- 0
chunkSize <- 500000 
conex <- file(description=db,open="r")   
dataChunk <- read.table(conex, nrows=chunkSize, header=T, fill=TRUE,sep=";")

repeat {
dataChunk <- read.table(conex, nrows=chunkSize, header=FALSE, fill = TRUE, sep=";", col.names=db_colnames)
total <- total + sum(dataChunk$total)
counter <- counter + nrow(dataChunk)
write.table(dataChunk, file …
Run Code Online (Sandbox Code Playgroud)

loops r chunks bigdata

5
推荐指数
1
解决办法
3630
查看次数

Python 请求模块:分块发布非常大的文件以监控进度

我在 Windows 10 上使用 Python 3.8 使用该requests模块。正如标题所示,我正在将非常大的文件发布到 HTTP 服务器,并且我想提供上传的状态。

我已经阅读了 10-20 个关于这个主题的 Stack Overflow 帖子,阅读了互联网上散布的文章,并深入研究了 GitHub 上我现在甚至不记得的项目的源代码。我试图实现我读到的所有内容,但无济于事。关于这个主题的很多信息已经有很多年了,并且该requests模块自那以后已经得到了很大的改进 - 因此一些信息可能已经过时。

我遇到的问题是使用 发送文件块requests.Response.post('Some-URL', data=file_chunk, header=header)。如果上传了 5 个文件块,则服务器上有 5 个单独的文件,而不是 1 个组合文件。

为了提供文件上传的状态,我创建了一个类似于下面所示示例的生成器函数。

def read_in_chunks(file_object, chunk_size=1024):
    """Generator to read a file piece by piece.
    Default chunk size: 1k."""
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data
Run Code Online (Sandbox Code Playgroud)

然后我迭代了这样创建的生成器对象:

with open('Some-File.zip', 'rb') as file_obj:
    for file_chunk in read_in_chunks(file_obj):
        requests.Response.post('Some-URL', data=file_chunk.encode('utf-8'), header=header)
Run Code Online (Sandbox Code Playgroud)

这不起作用。在文件块上传到的服务器上,每个块作为单独的文件存储在服务器上。如果文件被分成 5 个块,那么现在就有 5 个文件。在 …

python post chunks python-3.x python-requests

5
推荐指数
0
解决办法
5648
查看次数

分割为n个字符串时,返回字符串的所有可能组合

我找了一个关于这个的stackoverflow但是找不到办法去做.它可能涉及itertools.

我想找到分割字符串的所有可能结果,比如将字符串thisisateststring分成n(等长或不等长,无关紧要,两者都应包括在内)字符串.

例如,让n3:

[["thisisat", "eststrin", "g"], ["th", "isisates", "tstring"], ............]
Run Code Online (Sandbox Code Playgroud)

python string list chunks

4
推荐指数
1
解决办法
1694
查看次数

调用 celery.task.chunks 的正确方法是什么?

我正在使用 Python3 和 celery 处理可并行的任务。我喜欢将其分成几个块,这样就可以节省网络通信的成本。但是,celery 文档没有透露有关如何调用结果块的足够详细信息。尝试了不同的方法,但它们并没有像我预期的那样工作。我的代码段如下:

@app.task(name='pl.startregret')
def startregret(**kwargs): 
    items = list(zip(range(1000), range(1000)))
    chunk = regretclick.chunks(items, 10)
    print(chunk)
    for c in chunk:
        print(c)


@app.task(name='pl.regretclick')
def regretclick(x,y):
    print('got it.')
    return x + y
Run Code Online (Sandbox Code Playgroud)

我读了一些代码,认为我的代码中的块应该是一个生成器。然而,打印输出显示

[2014-10-15 13:12:15,930: WARNING/Worker-2] args
[2014-10-15 13:12:15,931: WARNING/Worker-2] subtask_type
[2014-10-15 13:12:15,931: WARNING/Worker-2] kwargs
[2014-10-15 13:12:15,931: WARNING/Worker-2] immutable
[2014-10-15 13:12:15,931: WARNING/Worker-2] options
[2014-10-15 13:12:15,931: WARNING/Worker-2] task
Run Code Online (Sandbox Code Playgroud)

关于调用块的正确方法有什么建议吗?

谢谢,

更新:我已阅读源代码并尝试了 chunk()。看起来现在唯一的问题是使用默认队列而不是 celeryconfig 中定义的队列。

python chunks celery

4
推荐指数
1
解决办法
8623
查看次数

Minecraft 块部分如何存储

我目前正在制作一个 Minecraft 块操作程序,我想知道 Minecraft 块部分是如何存储的。

来自Minecraft Wiki 文章,了解 Minecraft 如何存储其区块

部分:复合标签列表,每个标签都是一个子块。

一个单独的部分。

Y:该部分的 Y 索引(不是坐标)。范围 0 到 15(从下到上),没有重复项,但如果为空,某些部分可能会丢失。

块:定义地形的 4096 字节块 ID。每块 8 位,加上 ? 来自下面的添加标签的位。

添加:可能不存在。2048 字节的附加块 ID 数据。添加到(组合)上述块 ID 以形成 0 到 4095 范围内的真实块 ID 的值。每个块 4 位。组合是通过将该值移至左侧 8 位,然后将其添加到上面的块 ID 来完成的。

数据:2048 字节的块数据另外定义了部分地形。每块 4 位。

BlockLight:2048字节记录每个块中块发射的光量。与加载时重新计算相比,加载时间更快。每块 4 位。

SkyLight:2048 字节记录照射到每个块的阳光或月光量。每块 4 位。

但我不明白怎么Blocks读。块中的每个部分都是 16 x 16 x 16 块。但 Minecraft 将块存储在一数组的一个部分中。

chunks minecraft

4
推荐指数
1
解决办法
2790
查看次数

将生成器分解成块的最佳方法

您能帮我写这段代码,将生成器的产量分成100个大块,并保存到数据库中吗?

$batchSize = 100;

$batch = [];
$i = 0;

/** 
 * @yield array $item
 */
foreach(itemsGenerator() as $item) {
    $batch[] = $item;
    $i++;

    if ($i === $batchSize) {
        Db::table('items')->save($batch);

        $batch = [];
        $i = 0;
    }

    $cnt++;
}

if ($batch) {
     Db::table('items')->save($batch);
}
Run Code Online (Sandbox Code Playgroud)

我不想把分解成大块的逻辑放在 itemsGenerator

php foreach generator chunks

4
推荐指数
1
解决办法
1710
查看次数

如何在没有连接的情况下读取Python数据帧中的数据?

我想以块的形式将文件f(文件大小:85GB)读取到数据帧.建议使用以下代码.

chunksize = 5
TextFileReader = pd.read_csv(f, chunksize=chunksize)
Run Code Online (Sandbox Code Playgroud)

但是,这段代码给了我TextFileReader,而不是dataframe.此外,由于内存限制,我不想连接这些块以将TextFileReader转换为dataframe.请指教.

python csv chunks dataframe pandas

4
推荐指数
1
解决办法
9355
查看次数

将数据帧列拆分为Pandas中的相等窗口

我有一个像下面这样的数据帧,我打算用size = 30每个数据块提取窗口,然后为每个数据块写入循环,并调用其他函数.

index = pd.date_range(start='2016-01-01', end='2016-04-01', freq='D')
data = pd.DataFrame(np.random.rand(len(index)), index = index, columns=['random'])
Run Code Online (Sandbox Code Playgroud)

我找到了以下功能,但我想知道是否有更有效的方法.

def split(df, chunkSize = 30): 
    listOfDf = list()
    numberChunks = len(df) // chunkSize + 1
    for i in range(numberChunks):
        listOfDf.append(df[i*chunkSize:(i+1)*chunkSize])
    return listOfDf 
Run Code Online (Sandbox Code Playgroud)

python split chunks dataframe pandas

4
推荐指数
2
解决办法
1710
查看次数

为什么要在python请求中使用iter_content和chunk_size

我为什么要使用iter_content,特别是我对使用chunk_size的用途感到非常困惑,因为我尝试过使用它,并且在下载成功后似乎以各种方式保存了文件。

g = requests.get(url, stream=True)

with open('c:/users/andriken/desktop/tiger.jpg', 'wb') as sav:
    for chunk in g.iter_content(chunk_size=1000000):
        print (chunk)
        sav.write(chunk)
Run Code Online (Sandbox Code Playgroud)

帮助我了解的用法,iter_content当您看到将1000000字节用作时chunk_size,会发生什么,确切的目的和结果是什么?

python chunks python-requests

4
推荐指数
2
解决办法
1万
查看次数

如何解决Create-React-app项目中的Chunk Load错误?

我正在部署一个使用 CRA(Create-React-App) 生成的项目,并且所有 babel 和 webpack 配置保持不变。

另外,我正在使用 AWS S3 的静态存储桶托管功能部署我的 React 应用程序。

问题是,由于不包含服务器,因此每次部署新文件时,都会创建具有随机哈希值的新块。

当客户端位于具有旧哈希的网站中并且部署了新哈希时,客户端会收到块加载错误。

为了演示这一点,使用 构建项目并yarn build转到/build文件夹以查看 webpack 生成的块。然后使用serve,我可以演示我的部署在本地计算机中的行为方式。

执行后yarn serve,转到正在提供构建文件的相应本地主机。

然后,在/build/static/js文件夹中,根据需要重命名每个块文件的哈希值。

保持浏览器不变,然后重新启动yarn serve,这将提供重命名的块文件。

然后回到浏览器,你很可能会得到两个错误:

Uncaught SyntaxError: Unexpected token '<'

Loading Chunk n failed.(missing: ~~)
Run Code Online (Sandbox Code Playgroud)

我认为可以解决这个问题的方法是在发生 ChunkLoadError 时硬重新加载网页。遗憾的是,window.reload(boolean)函数已被弃用,仅仅这样做并window.location.reload()不能解决这个问题。

+) PS。React.Lazy()我通过在一些代码中使用来实现代码分割。

chunks webpack create-react-app webpack-4

4
推荐指数
1
解决办法
1万
查看次数