(fileNameToCharStream "bigfile"
|>> fuse [length;
splitBy (fun x -> x = ' ' || x = '\n') removeEmpty |>> length;
splitBy (fun x -> x = '\n') keepEmpty |>> length;
])
(*fuse "fuses" the three functions to run concurrently*)
|> run 2 (*forces to run in parallel on two threads*)
|> (fun [num_chars; num_words; num_lines] ->
printfn "%d %d %d"
num_chars num_words, num_lines))
我想以下列方式使这段代码工作:将原始流分成两个正好在中间; 然后为每一半运行一个单独的计算,计算3件事:长度(即字符数),字数,行数.但是,如果我错误地将一个单词分开,我不想有问题.这必须得到照顾.该文件应该只读一次.
我应该如何编程指定的函数和运算符| >>?可能吗?
我有使用Scrapy框架编写的蜘蛛.我在使任何管道工作时遇到一些麻烦.我在pipelines.py中有以下代码:
class FilePipeline(object):
def __init__(self):
self.file = open('items.txt', 'wb')
def process_item(self, item, spider):
line = item['title'] + '\n'
self.file.write(line)
return item
Run Code Online (Sandbox Code Playgroud)
我的CrawlSpider子类有这一行来激活这个类的管道.
ITEM_PIPELINES = [
'event.pipelines.FilePipeline'
]
Run Code Online (Sandbox Code Playgroud)
但是当我使用它时
scrapy crawl my_spider
Run Code Online (Sandbox Code Playgroud)
我得到一条线说
2010-11-03 20:24:06+0000 [scrapy] DEBUG: Enabled item pipelines:
Run Code Online (Sandbox Code Playgroud)
没有管道(我认为这是日志应该输出它们的地方).
我已经尝试查看文档,但似乎没有任何完整项目的完整示例,看看我是否遗漏了任何内容.
有关下一步尝试的建议吗?或者在哪里寻找进一步的文件?
所以,我在一个文件夹中有一组目录00-99.每个目录都有100个子目录,00-99.每个子目录都有数千个图像.
我正在尝试做的基本上是在计算平均文件大小时得到进度报告,但我无法让它工作.这是我当前的查询:
get-childitem <MyPath> -recurse -filter *.jpeg | Where-Object { Write-Progress "Examining File $($_.Fullname)" true } | measure-object -Property length -Average
Run Code Online (Sandbox Code Playgroud)
这显示了一个在每个文件被处理时更新的栏,但最后我没有回到平均文件大小数据.显然,我做错了,因为我试图破解Where-Object打印进度声明可能是一个坏主意(tm).
由于存在数百万个图像,因此该查询显然需要非常长的时间才能工作.如果我理解正确的话,get-childitem几乎是查询时间的一部分.什么指针得到我想要的?AKA,我的结果理想情况是:
Starting...
Examining File: \00\00\Sample.jpeg
Examining File: \00\00\Sample2.jpeg
Examining File: \00\00\Sample3.jpeg
Examining File: \00\00\Sample4.jpeg
...
Examining File: \99\99\Sample9999.jpg
Average File Size: 12345678.244567
Run Code Online (Sandbox Code Playgroud)
编辑:我可以做简单的选项:
get-childitem <MyPath> -recurse -filter *.jpeg | measure-object -Property length -Average
Run Code Online (Sandbox Code Playgroud)
然后离开我的工作站一天半或者其他东西,但这似乎有点低效= /
问题是 :
我们有一个使用流水线操作的传输协议,并使用一个8位长的序列号(0到255)
发件人可以使用的最大窗口大小是多少?(发送者在等待确认之前可以在网上发送多少个数据包?)
Go-Back-N最大窗口大小为:w = 2 ^ m -1 w = 255.
选择性重复最大窗口大小为:w =(2 ^ m)/ 2 w = 128.
我不知道哪个是正确的,我应该使用哪个公式.
感谢帮助
我有一个脚本,我正在尝试添加管道功能.但是,我看到了奇怪的行为,脚本似乎只是针对管道中的最终对象运行.例如
param(
[parameter(ValueFromPipeline=$true)]
[string]$pipe
)
foreach ($n in $pipe) {
Write-Host "Read in " $n
}
Run Code Online (Sandbox Code Playgroud)
死简单,不是吗?然后我跑了1..10 | .\test.ps1,它只输出一行Read in 10.除了复杂性之外,我想要使用它的实际脚本还有更多的参数:
[CmdletBinding(DefaultParameterSetName="Alias")]
param (
[parameter(Position=0,ParameterSetName="Alias")]
[string]$Alias,
[parameter(ParameterSetName="File")]
[ValidateNotNullOrEmpty()]
[string]$File
<and so on>
)
Run Code Online (Sandbox Code Playgroud) 据说pipeline当set/getredis需要很多时,这是一个更好的方法,所以这是我的测试代码:
public class TestPipeline {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JedisShardInfo si = new JedisShardInfo("127.0.0.1", 6379);
List<JedisShardInfo> list = new ArrayList<JedisShardInfo>();
list.add(si);
ShardedJedis jedis = new ShardedJedis(list);
long startTime = System.currentTimeMillis();
ShardedJedisPipeline pipeline = jedis.pipelined();
for (int i = 0; i < 100000; i++) {
Map<String, String> map = new HashMap<String, String>();
map.put("id", "" + i);
map.put("name", "lyj" + i);
pipeline.hmset("m" + i, map);
} …Run Code Online (Sandbox Code Playgroud) 我有以下脚本/tmp无限期地监视目录,如果该目录中有任何文件操作,则文件名由while循环读取,文件名中的第一个a字符替换为b字符,并将此修改后的文件名记录到test.log文件中:
#!/bin/bash
trap ':' HUP
trap 'kill $(jobs -p)' EXIT
/usr/local/bin/inotifywait -q -m /tmp --format %f |
while IFS= read -r filename; do
echo "$filename" | sed 's/a/b/' > test.log
done
Run Code Online (Sandbox Code Playgroud)
这是实际脚本的简化版本.我上面的脚本也有一个Sys-V类型的init脚本,因为我希望保持LSB兼容,我的init脚本有force-reload(如果服务支持,则重新加载配置.否则,重新启动服务.)选项它将HUP信号发送到脚本.现在在执行之前执行force-reload,killproc -HUP test.sh输出pstree如下:
# pstree -Ap 4424
test.sh(4424)-+-inotifywait(4425)
`-test.sh(4426)
#
Run Code Online (Sandbox Code Playgroud)
执行后strace killproc -HUP test.sh,子shell终止:
# pstree -Ap 4424
test.sh(4424)---inotifywait(4425)
#
Run Code Online (Sandbox Code Playgroud)
据strace,killproc发送SIGHUP到过程4424和 …
我有一个简短的bash脚本 foo.sh
#!/bin/bash
cat /dev/urandom | tr -dc 'a-z1-9' | fold -w 4 | head -n 1
Run Code Online (Sandbox Code Playgroud)
当我直接从shell运行它时,它运行正常,完成时退出
$ ./foo.sh
m1un
$
Run Code Online (Sandbox Code Playgroud)
但是当我从Python运行它时
$ python -c "import subprocess; subprocess.call(['./foo.sh'])"
ygs9
Run Code Online (Sandbox Code Playgroud)
它输出线但然后永远挂起.造成这种差异的原因是什么?
类似于如何在scikit中仅将参数传递给管道对象的一部分?我想将参数传递给管道的一部分.通常,它应该工作正常,如:
estimator = XGBClassifier()
pipeline = Pipeline([
('clf', estimator)
])
Run Code Online (Sandbox Code Playgroud)
并执行像
pipeline.fit(X_train, y_train, clf__early_stopping_rounds=20)
Run Code Online (Sandbox Code Playgroud)
但它失败了:
/usr/local/lib/python3.5/site-packages/sklearn/pipeline.py in fit(self, X, y, **fit_params)
114 """
115 Xt, yt, fit_params = self._pre_transform(X, y, **fit_params)
--> 116 self.steps[-1][-1].fit(Xt, yt, **fit_params)
117 return self
118
/usr/local/lib/python3.5/site-packages/xgboost-0.6-py3.5.egg/xgboost/sklearn.py in fit(self, X, y, sample_weight, eval_set, eval_metric, early_stopping_rounds, verbose)
443 early_stopping_rounds=early_stopping_rounds,
444 evals_result=evals_result, obj=obj, feval=feval,
--> 445 verbose_eval=verbose)
446
447 self.objective = xgb_options["objective"]
/usr/local/lib/python3.5/site-packages/xgboost-0.6-py3.5.egg/xgboost/training.py in train(params, dtrain, num_boost_round, evals, obj, feval, maximize, early_stopping_rounds, evals_result, verbose_eval, learning_rates, xgb_model, …Run Code Online (Sandbox Code Playgroud) 我创建了一堆本地部署管道作业,这些作业执行的操作包括删除现有容器,在本地构建服务,构建docker镜像,运行容器等等.这些不是CI/CD作业,只是用于部署的小型管道在开发期间本地
我现在要做的就是让所有开发人员都可以使用它,这样他们就可以简单地启动已经包含作业的jenkins的本地实例.
我的docker文件相当直接......
FROM jenkins:latest
USER root
RUN apt-get update
RUN apt-get install -y sudo
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
# Docker
RUN apt-get update
RUN apt-get dist-upgrade -y
RUN apt-get install apt-transport-https ca-certificates -y
RUN sh -c "echo deb https://apt.dockerproject.org/repo debian-jessie main > /etc/apt/sources.list.d/docker.list"
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
RUN apt-get update
RUN apt-cache policy docker-engine
RUN apt-get install docker-engine -y
# .NET Core CLI dependencies
RUN echo "deb [arch=amd64] http://llvm.org/apt/jessie/ llvm-toolchain-jessie-3.6 main" > /etc/apt/sources.list.d/llvm.list …Run Code Online (Sandbox Code Playgroud) pipeline ×10
python ×3
bash ×2
powershell ×2
docker ×1
f# ×1
java ×1
jenkins ×1
kwargs ×1
performance ×1
pipe ×1
progress ×1
redis ×1
scikit-learn ×1
scraper ×1
scrapy ×1
shell ×1
signals ×1
subprocess ×1
tcp ×1
web-crawler ×1
xgboost ×1