我想读取不同块的日志文件,使其成为多线程.该应用程序将在具有多个硬盘的服务器端环境中运行.在阅读了块之后,应用程序将逐行处理每个块的行.
我已经使用bufferedreader完成了每个文件行的读取,我可以使用RandomAccessFile和MappedByteBuffer组合我的文件块,但是将这两者结合起来并不容易.
问题是,块正在切入我的块的最后一行.我从来没有我的块的最后一行,所以处理这个最后的日志是不可能的.我正试图找到一种方法将我的文件切割成可变长度的块,尊重行的结尾.
有没有人有这样做的代码?
在我的Java代码内部分片后,我需要获取一个块列表.我的代码很简单,看起来像这样:
Mongo m = new Mongo( "localhost" , 27017 );
DB db = m.getDB( "admin" );
Object cr = db.eval("db.printShardingStatus()", 1);
Run Code Online (Sandbox Code Playgroud)
调用eval()会返回错误:
Exception in thread "main" com.mongodb.CommandResult$CommandFailure: command failed [$eval]: { "serverUsed" : "localhost/127.0.0.1:27017" , "errno" : -3.0 , "errmsg" : "invoke failed: JS Error: ReferenceError: printShardingStatus is not defined src/mongo/shell/db.js:891" , "ok" : 0.0}
at com.mongodb.CommandResult.getException(CommandResult.java:88)
at com.mongodb.CommandResult.throwOnError(CommandResult.java:134)
at com.mongodb.DB.eval(DB.java:340)
at org.sm.mongodb.MongoTest.main(MongoTest.java:35)
Run Code Online (Sandbox Code Playgroud)
而且,实际上,如果我们查看db.js的代码,在第891行中会调用一个未在文件中定义的方法printShardingStatus().在utils_sh.js文件中的sh.status()方法内部,甚至还有一条注释:
// TODO:在这里移动实际的commadn
重要的是,当我在mongo命令行中运行这些命令时,一切正常!
我的问题是:
在Node Web服务器中,我想在特定点刷新HTML内容,如下所示:
<html><head> ... </head><body> ... </body></html>例如:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<html><head> ... </head>');
setTimeout(function() {
res.write('<body> ... </body>');
setTimeout(function() {
res.end('</html>');
}, 2000);
}, 2000);
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)
上面的代码<html><head> ... </head><body> ... </body></html>在一个块中响应~4s后,但是我注意到块应该> = 4096bytes才能立即刷新:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write(Array(4097).join('*'));
setTimeout(function() {
res.write(Array(4097).join('#'));
setTimeout(function() {
res.end('done!');
}, 2000);
}, 2000);
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)
上面代码的响应也需要大约4秒,但是会立即刷新块.我可以填充小块来填充至少4096字节,只是想知道是否还有另一种"非hacky"方式.
在PHP中,这可以通过flush()/ ob_flush()和禁用来实现output_buffering
FWIW,我正在构建一个Web服务器工具来试验几个HTML块输出配置,并在它们之间有一个给定的延迟,以便分析现代浏览器如何处理它并选择最佳配置. …
我有这种形式的数组:[1, 2, 1, 4, 5, 4, 1, 7, 7, 6]我需要将它们切成类似的东西[[1, 2, 1], [4, 5, 4], [1], [7, 7, 6]],其中断点由连续对之间的绝对差异大于1确定.
在Ruby中有一些我可以利用的魔法,还是我不得不编写一个简单的旧迭代代码?
我知道CSS属性,text-transform: capitalize但是有人可以帮助我使用Javascript复制此属性吗?
我想将参数传递给我的函数,该函数将返回每个单词首字母大写的字符串。
我已经走了很远,但是我仍然试图将我的字符串数组分解成块:
function upper(x){
x = x.split(" ");
// this function should return chunks but when called I'm getting undefined
Array.prototype.chunk = function ( n ) {
return [ this.slice( 0, n ) ].concat( this.slice(n).chunk(n) );
};
x = x.chunk;
}
upper("chimpanzees like cigars")
Run Code Online (Sandbox Code Playgroud)
在我猜出块之后,我需要将每个块再次拆分为第一个字符和其余字符,.toUpperCase()在第一个字符上使用,将其与其余字符一起备份,然后将这些块再次合并为字符串?
有没有更简单的方法可以做到这一点?
我正在制作一个需要将音频流式传输到服务器的应用程序。我想要做的是将录制的音频分成块并在录制时上传它们。
我用了两台录音机来做到这一点,但效果不佳;我可以听到块之间的区别(停止几毫秒)。
我怎样才能做到这一点?
我想读一个大的csv文件,所以我使用chunksizepandas 的方法迭代器.但我得到了一个ParserError所以我想使用try除了当我得到这个错误时我想传递到下一个块迭代.所以我测试了:
df = pd.read_csv("file.csv",iterator=True)
d=True
while d==True :
try:
df.get_chunk(500000)
exept ParserError :
pass
except StopIteration:
d=False
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误:
NameError : name "ParserError" is not defined .
谢谢您的帮助 !!
我有一个未知数量的样本,总是成对出现,例如11 22或33 44.
我将所有样本存储在一个列表中[11, 22, 33, 44],然后成对[[11, 22], [33, 44]]地将其删除以获得嵌套列表.
所有这些都是使用这些对并稍后用指定的分隔符显示它们,例如11:22.
我有这个功能来完成聚合数据和拆分列表的工作:
def chop_it_up(array, chunk):
for i in range(0, len(array), chunk):
yield array[i:i+chunk]
n_samples = int(input("Number of samples: "))
list_of_samples = []
for i in range(n_samples):
list_of_samples.extend(list(map(int, input().strip().split(' '))))
chunks = list(chop_it_up(list_of_samples, 2))
print(':'.join(str(x) for x in chunks))
Run Code Online (Sandbox Code Playgroud)
输入的示例如下:
26 34
78 94
51 130
但是,代码的最后一行产生了这个:
[11, 22]:[33, 44]
Run Code Online (Sandbox Code Playgroud)
期望的输出应该是:
[11:22] [33:44]
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
可以说我有一个带有随机数的字符串,例如下面的字符串,11111111133333333333222222220000000111111010101010223311232323我想将上面的字符串分成块,每个数字组成一个大块,然后将其放入数组或对象中(没关系)。
到目前为止,我想到的第一个解决方案是遍历字符串,如果您发现与上一个字符不同的字符,则开始将当前字符推入对象中。我发现的第二个解决方案是用完成过渡的字符替换字符串中的每个字符过渡,并在中间加上一个空格字符,然后将该字符串拆分为空格字符。第二种解决方案对我来说很难实施,因为我无法想到正则表达式是什么样子。第一个解决方案是可行的,但编码过多,我希望可以更快地找到解决方案。
因此,预期的输出将是一个一维数组,其中每个单元格将具有如下所示的数字块(对于上述字符串)。
[111111111, 33333333333, 22222222, 0000000,
111111, 0, 1, 0, 1, 0, 1, 0,
1, 0, 22, 33, 11, 2, 3, 2, 3, 2, 3]
Run Code Online (Sandbox Code Playgroud) 我想使用 angular HttpClient 和 aspnetcore web API 将大型视频文件作为块上传到服务器,因为我在使用分段文件上传时遇到了文件大小限制问题。
chunks ×10
java ×2
javascript ×2
python ×2
split ×2
angular ×1
arrays ×1
asp.net-core ×1
audio ×1
file-upload ×1
flush ×1
http ×1
ios ×1
line-breaks ×1
list ×1
mongodb ×1
node.js ×1
pandas ×1
python-3.x ×1
ruby ×1
sharding ×1
slice ×1
status ×1
stream ×1
try-except ×1