我正在寻找一种通过HTTPS实现文件传输服务的方法,该服务使用分块来应对间歇性连接丢失并减少使用流式传输所需的大量超时.由于客户端可能位于防火墙后面,因此MSDN上的分块通道样本不适用.
在我的理解中,Spring Batch中的"面向块的处理"帮助我在单个事务中有效地处理多个项目.这包括有效使用外部系统的接口.由于外部通信包括开销,因此它应该是有限的并且也是面向块的.这就是为什么我们有提交级别的原因ItemWriter.所以我没有得到的是,为什么ItemReader仍然必须逐项阅读?为什么我也不能读块呢?
在我的步骤中,读者必须调用web服务.作者将此信息发送到另一个Web服务.这就是为什么我不想做必要的电话.
接口ItemWriter是面向块的 - 正如您所知道的那样:
public abstract void write(List<? extends T> paramList) throws Exception;
Run Code Online (Sandbox Code Playgroud)
但事实ItemReader并非如此:
public abstract T read() throws Exception;
Run Code Online (Sandbox Code Playgroud)
作为一种解决方法,我实现了一个ChunkBufferingItemReader读取项目列表的方法,存储它们并在read()调用方法时逐个返回项目.
但是当谈到异常处理和现在重新开始工作时,这种方法变得混乱.我感觉我在这里工作,框架应该为我做.
我错过了什么吗?Spring Batch中是否存在任何现有功能?
在另一篇文章中,建议将a的返回类型更改ItemReader为a List.但是我ItemProcessor必须从单个输入发出多个输出.这是正确的方法吗?
我对任何最佳实践都很优雅.提前致谢 :-)
我有一个行文本文件(几GB和~1200万行),其中每行是一个点x,y,z,+附件信息.我希望读取文件块,处理点和分割(基于点的位置的空间索引遵循0.25米的方格),将结果存储在临时文件夹中的多个文本文件中.
449319.34;6242700.23;0.38;1;1;1;0;0;42;25;3;17;482375.326087;20224;23808;23808
449310.72;6242700.22;0.35;3;1;1;0;0;42;23;3;17;482375.334291;20480;24576;24576
449313.81;6242700.66;0.39;1;1;1;0;0;42;24;3;17;482375.342666;20224;24576;24576
449298.37;6242700.27;0.39;1;1;1;0;0;42;21;3;17;482375.350762;18176;22784;23552
449287.47;6242700.06;0.39;11;1;1;0;0;42;20;3;17;482375.358921;20736;24832;24832
449290.11;6242700.21;0.35;1;1;1;0;0;42;20;3;17;482375.358962;19968;24064;23808
449280.48;6242700.08;0.33;1;1;1;0;0;42;18;3;17;482375.367142;22528;25856;26624
449286.97;6242700.44;0.36;3;1;1;0;0;42;19;3;17;482375.367246;19712;23552;23296
449293.03;6242700.78;0.37;1;1;1;0;0;42;21;3;17;482375.367342;19456;23296;23808
449313.36;6242701.92;0.38;6;1;1;0;0;42;24;3;17;482375.367654;19968;24576;24576
449277.48;6242700.17;0.34;8;1;1;0;0;42;18;3;17;482375.375420;20224;23808;25088
449289.46;6242700.85;0.31;3;1;1;0;0;42;20;3;17;482375.375611;18944;23040;23040
Run Code Online (Sandbox Code Playgroud)
哪个";"是分隔符,哪个是first two columns the x and y有用的ID position
输出结果是另一个文本文件,其中每个ID只随机提取一个点
例如:
20;10;449319.34;6242700.23;0.38;1;1;1;0;0;42;25;3;17;482375.326087;20224;23808;23808
20;10;449310.72;6242700.22;0.35;3;1;1;0;0;42;23;3;17;482375.334291;20480;24576;24576
20;10;449313.81;6242700.66;0.39;1;1;1;0;0;42;24;3;17;482375.342666;20224;24576;24576
20;10;449298.37;6242700.27;0.39;1;1;1;0;0;42;21;3;17;482375.350762;18176;22784;23552
20;11;449287.47;6242700.06;0.39;11;1;1;0;0;42;20;3;17;482375.358921;20736;24832;24832
20;11;449290.11;6242700.21;0.35;1;1;1;0;0;42;20;3;17;482375.358962;19968;24064;23808
Run Code Online (Sandbox Code Playgroud)
前两列是ID
最终输出将是(示例)没有ID值
20;10;449313.81;6242700.66;0.39;1;1;1;0;0;42;24;3;17;482375.342666;20224;24576;24576
20;11;449287.47;6242700.06;0.39;11;1;1;0;0;42;20;3;17;482375.358921;20736;24832;24832
Run Code Online (Sandbox Code Playgroud)
我正在使用此博客的解决方案
# File: readline-example-3.py
file = open("sample.txt")
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
from __future__ import division
import os
import glob
import tempfile
import sys
def print_flulsh(n, maxvalue …Run Code Online (Sandbox Code Playgroud) 所以我一直在Eloquent尝试laravel的分块,但我遇到了一个问题.请考虑以下代码(我的问题的更简化版本):
$data = DB::connection('mydb')->table('bigdata')
->chunk(200, function($data) {
echo memory_get_usage();
foreach($data as $d) {
Model::create(
array(
'foo' => $d->bar,
...
//etc
));
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我运行以下代码时,我的内存输出如下所示:
19039816
21490096
23898816
26267640
28670432
31038840
Run Code Online (Sandbox Code Playgroud)
所以没有跳进去php.ini改变memory_limit价值任何线索为什么它不起作用?根据文档:"如果你需要处理很多(数千)Eloquent记录,使用chunk命令将允许你不用吃掉你所有的RAM".
我试过unset($data)foreach函数,但它没有帮助.关于我如何利用chunk或者误解了它的作用的任何线索?
我正在使用WebRTC将文件发送到已连接的对等方,并且正在将文件分块发送。但是,我在弄清楚如何让对等方逐块地流式传输时保存/下载文件时遇到了麻烦。
我在网上找到的所有示例都建议这样做:
// sender
dataConnection.send({
'file': file
});
// receiver
dataConnection.on('data', function(fileData) {
var dataView = new Uint8Array(fileData);
var dataBlob = new Blob([dataView]);
var url = window.URL.createObjectURL(dataBlob);
// create <a>
var link = document.createElement('a');
link.href = url;
link.download = fileName;
document.body.appendChild(link);
// trigger the download file dialog
link.click();
}
Run Code Online (Sandbox Code Playgroud)
但是,这种方法不支持获取文件的大块并在出现每个大块时对其进行写...它必须等待整个文件在发送方读取并发送到接收方。
我想做的是这样的:
// sender
for (var i = 0; i < fileSize; i += chunkSize) {
var fileReader = new FileReader();
// read next chunk
var blob = file.slice(start, end);
... …Run Code Online (Sandbox Code Playgroud) 我有一个大的固定宽度文件,被以10000行的块读取到熊猫中。除了从数据中删除重复项之外,这对所有其他事情都非常有用,因为重复项显然可以位于不同的块中。正在分块读取文件,因为它太大而无法完全放入内存中。
我对文件进行重复数据删除的第一个尝试是仅引入两行以进行重复数据删除,并列出了不可读的行。仅读取这两列(大约500列)就很容易适合内存,并且我能够使用id列查找重复项,并使用eligibility列来确定要保留两个或三个具有相同id的哪个。然后,我使用read_fwf()命令的skiprows标志跳过这些行。
我遇到的问题是Pandas等宽文件阅读器无法同时与skiprows = [list]和iterator = True一起使用。
那么,如何对正在处理的文件进行重复数据删除?
我正试图在nltk中使用ne_chunk和pos_tag来判断一个句子.
from nltk import tag
from nltk.tag import pos_tag
from nltk.tree import Tree
from nltk.chunk import ne_chunk
sentence = "Michael and John is reading a booklet in a library of Jakarta"
tagged_sent = pos_tag(sentence.split())
print_chunk = [chunk for chunk in ne_chunk(tagged_sent) if isinstance(chunk, Tree)]
print print_chunk
Run Code Online (Sandbox Code Playgroud)
这就是结果:
[Tree('GPE', [('Michael', 'NNP')]), Tree('PERSON', [('John', 'NNP')]), Tree('GPE', [('Jakarta', 'NNP')])]
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否有可能不包括pos_tag(如上面的NNP)并且仅包括Tree'GPE','PERSON'?什么'GPE'的意思?
提前致谢
在阅读提高.NET应用程序性能和可伸缩性时,我在"改进托管代码性能/垃圾收集器指南"中遇到了这个问题:
Avoid preallocating and chunking memory.
但本书从未解释过为什么预分配是坏的或者Chunking在GC优化方面的真正含义.
有人可以对这个问题有更多的了解,并向我解释为什么这两个是坏的,它们在使用GC的.net方面有什么意义?
如何从给定模式的句子中获取所有块.为例
NP:{<NN><NN>}
Run Code Online (Sandbox Code Playgroud)
句子标记:
[("money", "NN"), ("market", "NN") ("fund", "NN")]
Run Code Online (Sandbox Code Playgroud)
如果我解析我获得
(S (NP money/NN market/NN) fund/NN)
Run Code Online (Sandbox Code Playgroud)
我想也有另一种选择
(S money/NN (NP market/NN fund/NN))
Run Code Online (Sandbox Code Playgroud) 自从我被告知Spacy是用于自然语音处理的功能强大的Python模块以来,我现在迫切希望找到一种将单词组合在一起的方法,而不仅仅是名词短语,最重要的是介词短语。我怀疑是否存在Spacy函数,但这将是我猜想的最简单的方法(在我的项目中已经实现了SpacySpaCy导入)。不过,我愿意接受任何短语识别/分块的可能性。
chunking ×10
python ×5
nlp ×2
nltk ×2
performance ×2
.net ×1
allocation ×1
blob ×1
buffer ×1
file-upload ×1
fileapi ×1
html5 ×1
https ×1
laravel ×1
optimization ×1
pandas ×1
php ×1
phrases ×1
spacy ×1
spring-batch ×1
tags ×1
tree ×1
wcf ×1
webrtc ×1