标签: pipeline

是什么决定了Powershell管道是否会展开一个集合?

# array
C:\> (1,2,3).count
3
C:\> (1,2,3 | measure).count
3

# hashtable
C:\> @{1=1; 2=2; 3=3}.count
3
C:\> (@{1=1; 2=2; 3=3} | measure).count
1

# array returned from function
C:\> function UnrollMe { $args }
C:\> (UnrollMe a,b,c).count
3
C:\> (UnrollMe a,b,c | measure).count
1
C:\> (1,2,3).gettype() -eq (UnrollMe a,b,c).gettype()
True
Run Code Online (Sandbox Code Playgroud)

与HashTables的差异是众所周知的,尽管官方文档仅提到它(通过示例).

但是,功能问题对我来说是个新闻.我有点震惊,现在还没有咬过我.我们编程人员可以遵循一些指导原则吗?我知道在C#中编写cmdlet时会出现WriteObject重载,您可以在其中明确地控制枚举,但是AFAIK在Posh语言本身中没有这样的构造.正如最后一个例子所示,Posh解释器似乎相信被管道对象的类型没有区别.我怀疑在引擎盖下可能会有一些Object vs PSObject的怪异,但是当你编写纯粹的Posh并期望脚本语言"正常工作"时,这没什么用处.

/编辑/

基思是正确的指出,在我的例子中,我传入一个字符串[]参数而不是3个字符串参数.换句话说,Measure-Object说Count = 1的原因是因为它看到的是一个数组,其第一个元素是@("a","b","c").很公平.这些知识允许您以多种方式解决问题:

# stick to single objects
C:\> (UnrollMe a b c | measure).count
3 …
Run Code Online (Sandbox Code Playgroud)

collections powershell ienumerable pipeline

9
推荐指数
1
解决办法
2874
查看次数

ASP.NET MVC中的Razor页面生命周期

我一般关于渲染管道的问题,我看过ASP.NET MVC管道方案,还有一个名为View Engine的步骤,它是如何工作的?我想知道这种情况:

  • 什么是首先渲染,母版页或视图?
  • 如果我Response.End()@{}页面开头的块中使用这个中断执行页面并停止渲染视图?

asp.net-mvc pipeline razor asp.net-mvc-3

9
推荐指数
1
解决办法
6296
查看次数

什么是构建管道的好工具?

我需要一个工具,以图形方式表示我们的构建管道.下面的ThoughtWorks Go和Jenkins Pipeline插件的截图几乎可以说明我想要它的样子.

问题是我们已经将Jenkins用于我们的构建和部署,以及一些其他用于编排类型职责的自定义工具.我们不希望管道工具本身进行构建或部署,它只需要调用Jenkins!我尝试了Go,它要求的第一件事是我的源代码是什么以及如何构建它.我无法以Jenkins进行构建的方式开始工作,但Go创建了管道.

我也尝试过Jenkins Pipeline插件,但它非常有限.首先,它不适用于Join插件(因此我们不能并行运行作业,这是一项要求).它还假设我们的所有任务都发生在Jenkins中(Jenkins无法在我们的测试实验室之外看到我们的生产环境).我不知道这是否也是可行的选择.

那么,有没有人对某些管道工具有什么建议可以做我正在寻找的东西?

ThoughtWorks Go Jenkins管道插件

deployment build-automation pipeline jenkins

9
推荐指数
1
解决办法
6751
查看次数

预编译后Rails javascript资产丢失

Rails的导游说:

如果生产中缺少预编译文件,您将获得Sprockets :: Helpers :: RailsHelper :: AssetPaths :: AssetNotPrecompiledError异常,指示丢失文件的名称.

我执行:

bundle exec rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

但是我没有收到任何错误,而且我的javascript文件在manifest.yml中丢失了.它也没有出现在公共/资产中,所以问题只出在生产上.

我在application.js中

//= require formalize/jquery-formalize
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢.

javascript pipeline assets ruby-on-rails file

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

带有node.js管道接收器的ZeroMQ会在一段时间后停止接收消息

我一直在尝试设置呼吸机/工作人员/接收器模式以便抓取页面,但我从未经历过测试阶段.我的设置的一个特点是水槽与呼吸机处于同一过程中.所有节点都使用ipc:// transport.目前只交换测试消息.呼吸机发送任务,工作人员接收它们并等待然后向水槽发送确认.

症状:在一段时间(通常少于5分钟)后,即使呼吸机继续发送任务并且工作人员继续接收它们并发送确认消息,接收器也会停止接收确认消息.

我知道确认已发送,因为如果我重新启动我的接收器,它会在启动时获取所有丢失的消息.

我以为ZeroMQ处理了自动重新连接.

通风机/宿

var push = zmq.socket('push');
var sink = zmq.socket('pull');
var pi = 0;
setInterval(function() {
    push.send(['ping', pi++], zmq.ZMQ_SNDMORE);
    push.send('end');
}, 2000);
push.bind('ipc://crawl.ipc');
sink.bind('ipc://crawl-sink.ipc');
sink.on('message', function() {
    var args = [].slice.apply(arguments).map(function(e) {return e.toString()});
    console.log('got message', args.join(' '));
});
Run Code Online (Sandbox Code Playgroud)

worker.js

var pull = zmq.socket('pull');
var sink = zmq.socket('push');
sink.connect(opt.sink);
pull.connect(opt.push);

pull.on('message', function() {
    var args = [].slice.apply(arguments).map(function(e) {return e.toString()});
    console.log('got job ', args.join(' '));
    setTimeout(function() {
        console.log('job done ', args.join(' '));
        sink.send(['job done', args.join(' ')]);
    }, …
Run Code Online (Sandbox Code Playgroud)

javascript pipeline zeromq node.js

9
推荐指数
1
解决办法
1417
查看次数

AWS:Simple Workflow Service和Data Pipeline有什么区别?

Amazon Simple Workflow Service和Amazon Data Pipeline之间有什么区别?看起来它们几乎是同一种产品.数据管道有一个很好的基于Web的图表编辑器.

干杯!

workflow pipeline amazon-web-services

9
推荐指数
2
解决办法
4620
查看次数

sklearn管道 - 在管道中应用多项式特征变换后应用样本权重

我想应用样本权重,同时使用来自sklearn的管道(应该进行特征转换,例如多项式),然后应用回归量,例如ExtraTrees.

我在以下两个示例中使用以下包:

from sklearn.ensemble import ExtraTreesRegressor
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures
Run Code Online (Sandbox Code Playgroud)

只要我单独转换功能并在之后生成和训练模型,一切都很顺利:

#Feature generation
X = np.random.rand(200,4)
Y = np.random.rand(200)

#Feature transformation
poly = PolynomialFeatures(degree=2)
poly.fit_transform(X)

#Model generation and fit
clf = ExtraTreesRegressor(n_estimators=5, max_depth = 3)
weights = [1]*100 + [2]*100
clf.fit(X,Y, weights)
Run Code Online (Sandbox Code Playgroud)

但是在管道中执行它不起作用:

#Pipeline generation
pipe = Pipeline([('poly2', PolynomialFeatures(degree=2)), ('ExtraTrees', ExtraTreesRegressor(n_estimators=5, max_depth = 3))])

#Feature generation
X = np.random.rand(200,4)
Y = np.random.rand(200)

#Fitting model
clf = pipe
weights = [1]*100 + [2]*100 …
Run Code Online (Sandbox Code Playgroud)

python pipeline python-2.7 scikit-learn

9
推荐指数
1
解决办法
2857
查看次数

如何管道多个sql-和py-scripts

我从github gtfs_SQL_importer复制了以下代码:

cat gtfs_tables.sql \
  <(python import_gtfs_to_sql.py path/to/gtfs/data/directory) \
  gtfs_tables_makeindexes.sql \
  vacuumer.sql \
  | psql mydbname
Run Code Online (Sandbox Code Playgroud)

我试图在Windows上运行它,并用cat等效的windows 替换对UNIX命令的调用,type这应该与is-there-replacement-for-cat-on-windows类似.

但是,当我执行该代码时,我收到一些错误:

文件名,目录或文件系统的语法是错误的.

所以我试图将管道文件的数量限制为仅将对python的调用和对以下内容的调用结合起来psql:

type <(C:/python27/python path/to/py-script.py path/to/file-argument) | psql -U myUser -d myDataBase
Run Code Online (Sandbox Code Playgroud)

产生相同的错误.

但是,当我单独执行python脚本时,它按预期工作:

C:/python27/python path/to/py-script.py path/to/file-argument
Run Code Online (Sandbox Code Playgroud)

因此,我假设使用错误导致type将脚本的结果直接传递给psql.

有谁知道正确的语法?

编辑:为了确保问题与未找到的文件无关,我使用了命令中所有参数的绝对路径,除了typepsql-command(它们都通过%PATH%-variable 处理).

python pipeline windows-shell

9
推荐指数
1
解决办法
274
查看次数

Scikit-Learn:在交叉验证期间避免数据泄漏

我刚刚阅读了k-fold交叉验证,并意识到我无意中使用当前的预处理设置泄漏数据.

通常,我有一个火车和测试数据集.我在整个火车数据集上做了一堆数据插补和一次热编码,然后运行k-fold交叉验证.

泄漏是因为,如果我正在进行5倍交叉验证,我将训练80%的列车数据,并在剩余的20%的列车数据上进行测试.

我真的应该根据80%的火车来估算20%(而我之前使用的是100%的数据).

1)这是考虑交叉验证的正确方法吗?

2)我一直在研究这个Pipelinesklearn.pipeline,它似乎对做一堆变换很有用,然后最终将模型拟合到结果数据中.但是,我正在做一些像" float64用平均值列出缺失数据"这样的东西,"用模式归还所有其他数据",等等.

这种插补没有明显的变压器.我该如何将这一步添加到Pipeline?我会创建自己的子类BaseEstimator吗?

这里的任何指导都会很棒!

pipeline scikit-learn cross-validation

9
推荐指数
1
解决办法
1309
查看次数

提取管道中元组的第二个元素

我希望能够在管道中提取元组的第N项,而不使用with或以其他方式分解管道.Enum.at除了元组不是枚举这一事实外,它会完美地工作.

这是一个激励人心的例子:

colors = %{red: 1, green: 2, blue: 3}
data = [:red, :red, :blue]
data 
|> Enum.map(&Map.fetch(colors, &1))
|> Enum.unzip
Run Code Online (Sandbox Code Playgroud)

这回来了{[:ok, :ok, :ok], [1, 1, 3]},假设我只想提取[1, 1, 3]

(对于这种特殊情况,我可以使用,fetch!但对于我不存在的实际代码.)

我可以补充一下

|> Tuple.to_list
|> Enum.at(1)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,不需要从每个元组创建一个临时列表?

pipeline tuples elixir

9
推荐指数
1
解决办法
5025
查看次数