标签: pipeline

并行流水线

 (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件事:长度(即字符数),字数,行数.但是,如果我错误地将一个单词分开,我不想有问题.这必须得到照顾.该文件应该只读一次.

我应该如何编程指定的函数和运算符| >>?可能吗?

parallel-processing f# pipeline

8
推荐指数
1
解决办法
843
查看次数

无法让Scrapy管道工作

我有使用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)

没有管道(我认为这是日志应该输出它们的地方).

我已经尝试查看文档,但似乎没有任何完整项目的完整示例,看看我是否遗漏了任何内容.

有关下一步尝试的建议吗?或者在哪里寻找进一步的文件?

python pipeline web-crawler scrapy scraper

8
推荐指数
1
解决办法
6844
查看次数

Powershell Get-ChildItem进度问题

所以,我在一个文件夹中有一组目录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)

然后离开我的工作站一天半或者其他东西,但这似乎有点低效= /

powershell performance pipeline progress get-childitem

8
推荐指数
2
解决办法
8206
查看次数

窗口大小和序列号之间的关系

问题是 :

我们有一个使用流水线操作的传输协议,并使用一个8位长的序列号(0到255)

发件人可以使用的最大窗口大小是多少?(发送者在等待确认之前可以在网上发送多少个数据包?)

Go-Back-N最大窗口大小为:w = 2 ^ m -1 w = 255.

选择性重复最大窗口大小为:w =(2 ^ m)/ 2 w = 128.

我不知道哪个是正确的,我应该使用哪个公式.

感谢帮助

pipeline tcp

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

脚本似乎只处理管道中的最后一个对象

我有一个脚本,我正在尝试添加管道功能.但是,我看到了奇怪的行为,脚本似乎只是针对管道中的最终对象运行.例如

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)

powershell pipeline

8
推荐指数
1
解决办法
2518
查看次数

为什么在redis中使用管道时,有100,000条记录这么慢?

据说pipelineset/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)

java pipeline redis

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

使用管道命令忽略Bash脚本中的HUP信号

我有以下脚本/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 shell signals pipeline pipe

8
推荐指数
1
解决办法
2265
查看次数

从终端运行并从Python运行时,脚本的工作方式不同

我有一个简短的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)

它输出线但然后永远挂起.造成这种差异的原因是什么?

python bash subprocess pipeline

8
推荐指数
1
解决办法
517
查看次数

Sklearn将拟合参数传递给管道中的xgboost

类似于如何在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)

python pipeline kwargs scikit-learn xgboost

8
推荐指数
3
解决办法
4381
查看次数

使用预配置的作业创建Jenkins Docker Image

我创建了一堆本地部署管道作业,这些作业执行的操作包括删除现有容器,在本地构建服务,构建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 jenkins docker

8
推荐指数
2
解决办法
3522
查看次数