小编nan*_*nue的帖子

选择随机行PostgreSQL的最佳方法

我想在PostgreSQL中随机选择一行,我试过这个:

select * from table where random() < 0.01;
Run Code Online (Sandbox Code Playgroud)

但其他一些人推荐这个:

select * from table order by random() limit 1000;
Run Code Online (Sandbox Code Playgroud)

我有一个非常大的表,有5亿行,我希望它快.

哪种方法更好?有什么区别?选择随机行的最佳方法是什么?

sql random postgresql performance

311
推荐指数
9
解决办法
19万
查看次数

Docker中的Kafka无法正常工作

我正在尝试使用wurstmeister\kafka-docker图像 docker-compose,但我在连接所有内容方面遇到了实际问题.

我检查的所有帖子或问题,似乎没有任何问题,但我坦率地失去了.(并且在SO中至少有两个问题试图解决这个问题)

我认为问题在于我对网络的了解不足docker.所以问题是:

我可以从同一个kafka容器中使用和生产,但是,当我尝试创建另一个容器(或者使用我的笔记本电脑和python客户端)时,我得到了几个与advertised.host.name参数相关的错误(在图像中这个参数是KAFKA_ADVERTISED_HOST_NAME)

我已经尝试过多种方式设置这个变量,但它根本不起作用.

所以我正在寻找一个明确的答案(即如何自动设置这些参数及其含义)如何设置 docker-compose.yml

这是我的:

zookeeper:
  image: wurstmeister/zookeeper
  ports:
    - "2181:2181"

kafka:
  image: wurstmeister/kafka
 # hostname: kafka
  ports:
    - "9092"
  links:
    - zookeeper:zk
  environment:
    KAFKA_ADVERTISED_HOST_NAME: "kafka"
    KAFKA_ADVERTISED_PORT: "9092"
    KAFKA_ZOOKEEPER_CONNECT: "zk:2181"
Run Code Online (Sandbox Code Playgroud)

UPDATE

按照@dnephin的建议,我修改start-kafka.sh了以下几行:

...
if [[ -z "$KAFKA_ADVERTISED_PORT" ]]; then
    export KAFKA_ADVERTISED_PORT=$(hostname -i)
fi
...
Run Code Online (Sandbox Code Playgroud)

KAFKA_ADVERTISED_HOST_NAME: "kafka"从中删除docker-compose.yml

我以规范的方式启动了容器:

docker-compose up -d
Run Code Online (Sandbox Code Playgroud)

两个容器都在运行:

$ docker-compose ps
           Name                          Command               State                     Ports                    
-----------------------------------------------------------------------------------------------------------------
infraestructura_kafka_1       start-kafka.sh                   Up …
Run Code Online (Sandbox Code Playgroud)

apache-kafka docker docker-compose kafka-python

47
推荐指数
3
解决办法
4万
查看次数

Pyspark和PCA:如何提取此PCA的特征向量?如何计算他们解释的方差?

我正在使用pyspark(使用库)减少Spark DataFrame带有PCA模型的维度,spark ml如下所示:

pca = PCA(k=3, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
Run Code Online (Sandbox Code Playgroud)

在哪里data是一个Spark DataFrame实验室,其中features一个DenseVector是3维:

data.take(1)
Row(features=DenseVector([0.4536,-0.43218, 0.9876]), label=u'class1')
Run Code Online (Sandbox Code Playgroud)

拟合后,我转换数据:

transformed = model.transform(data)
transformed.first()
Row(features=DenseVector([0.4536,-0.43218, 0.9876]), label=u'class1', pca_features=DenseVector([-0.33256, 0.8668, 0.625]))
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何提取此PCA的特征向量?如何计算他们解释的方差?

pca apache-spark apache-spark-sql pyspark apache-spark-ml

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

将函数应用于Dask中的分组数据框:如何在函数中将分组的Dataframe指定为参数?

我有一个dask dataframe按索引(first_name)分组.

import pandas as pd
import numpy as np

from multiprocessing import cpu_count

from dask import dataframe as dd
from dask.multiprocessing import get 
from dask.distributed import Client


NCORES = cpu_count()
client = Client()

entities = pd.DataFrame({'first_name':['Jake','John','Danae','Beatriz', 'Jacke', 'Jon'],'last_name': ['Del Toro', 'Foster', 'Smith', 'Patterson', 'Toro', 'Froster'], 'ID':['X','U','X','Y', '12','13']})

df = dd.from_pandas(entities, npartitions=NCORES)
df = client.persist(df.set_index('first_name'))
Run Code Online (Sandbox Code Playgroud)

(显然entities在现实生活中有几千行)

我想将用户定义的函数应用于每个分组的数据帧.我想将每一行与组中的所有其他行进行比较(类似于Pandas将每行与数据帧中的所有行进行比较,并将结果保存在每行的列表中).

以下是我尝试应用的功能:

def contraster(x, DF):
    matches = DF.apply(lambda row: fuzz.partial_ratio(row['last_name'], x) >= 50, axis …
Run Code Online (Sandbox Code Playgroud)

python pandas dask

19
推荐指数
2
解决办法
1159
查看次数

随机森林的类非常不平衡

我在一个大数据问题中使用随机森林,它有一个非常不平衡的响应类,所以我阅读了文档,我发现了以下参数:

strata 

sampsize
Run Code Online (Sandbox Code Playgroud)

这些参数的文档很少(或者我没有运气找到它),我真的不明白如何实现它.我使用以下代码:

randomForest(x=predictors, 
             y=response, 
             data=train.data, 
             mtry=lista.params[1], 
             ntree=lista.params[2], 
             na.action=na.omit, 
             nodesize=lista.params[3], 
             maxnodes=lista.params[4],
             sampsize=c(250000,2000), 
             do.trace=100, 
             importance=TRUE)
Run Code Online (Sandbox Code Playgroud)

响应是一个具有两个可能值的类,第一个出现的频率高于第二个(10000:1或更高)

list.params是一个包含不同参数的列表(呃!我知道......)

好吧,问题(再次)是:我如何使用'strata'参数?我正确使用sampsize?

最后,有时我会收到以下错误:

Error in randomForest.default(x = predictors, y = response, data = train.data,  :
  Still have fewer than two classes in the in-bag sample after 10 attempts.
Run Code Online (Sandbox Code Playgroud)

对不起如果我做了很多(也许是愚蠢的)问题......

r random-forest

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

Luigi Pipeline从S3开始

我的初始文件在AWS S3.有人能指出我需要在一个设置这个Luigi Task吗?

我查看了文档luigi.S3但发现但不清楚我该如何处理,然后我在网上搜索,只获取mortar-luigiluigi顶部的链接和实现.

UPDATE

按照为@matagus提供的示例(我~/.boto也按照建议创建了文件):

# coding: utf-8

import luigi

from luigi.s3 import S3Target, S3Client

class MyS3File(luigi.ExternalTask):
    def output(self):
        return S3Target('s3://my-bucket/19170205.txt')

class ProcessS3File(luigi.Task):

    def requieres(self):
        return MyS3File()

    def output(self):
        return luigi.LocalTarget('/tmp/resultado.txt')

    def run(self):
        result = None

        for input in self.input():
           print("Doing something ...")
           with input.open('r') as f:
               for line in f:
                   result = 'This is a line'

        if result:
            out_file = self.output().open('w')
            out_file.write(result)
Run Code Online (Sandbox Code Playgroud)

当我执行它时没有任何反应

DEBUG: Checking if ProcessS3File() is …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 luigi

12
推荐指数
1
解决办法
6416
查看次数

如何从R中提取RandomForest以用于生产?

我有一个成功的随机森林模型,我想将它集成到另一个软件中,我知道我可以使用一些库(比如Java中的fastRF或ALGLIB的DecisionForest用于其他语言),但我如何使用R中训练的"模型"?我必须用新语言重新训练它吗?

另一种观点是以某种方式提取它,但我不知道该怎么做...

任何帮助将不胜感激

提前致谢

java r alglib random-forest

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

Rmd文件中的knit_child正在打印不需要的输出

我已经成功地用于knit_child生成pdf文件,遵循http://yihui.name/knitr/demo/child/的代码,但是当我尝试在.Rmd文件中使用该示例时:

```{r, results='asis', echo=FALSE, message=FALSE}
out = NULL
for (p in c("p1","p2","p3","p4","p5","p6","p7","p8","p9","p10")) {
  out = c(out, knit_child('quick_variable.Rmd'))
  cat(out)
}
```
Run Code Online (Sandbox Code Playgroud)

(我修改原始代码,用于工作Rmd).

我有两个问题,第一个:

|
| | 0% |
|... | 5% ordinary text without R code

|
|....... | 11% label: unnamed-chunk-4 (with options) List of 1 $ echo: logi FALSE

|
|.......... | 16% ordinary text without R code

|
|.............. | 21% label: unnamed-chunk-5 (with options) List of 2 $ echo …
Run Code Online (Sandbox Code Playgroud)

r knitr

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

RVM,Capistrano 3和bundle失败

我正在使用Capistrano 3:

?  webapp git:(rails) ? cap --version
Capistrano Version: 3.1.0 (Rake Version: 10.1.1)
Run Code Online (Sandbox Code Playgroud)

Capfile是:

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'

require 'capistrano/rails'
require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
Run Code Online (Sandbox Code Playgroud)

而我的deploy.rb是:

set :rvm_type, :user 

set :application, "my_app"

set :scm, :git
set :repo_url,  'git@github.com:nanounanue/my_app.git'
set :scm_passphrase, ""


set :ssh_options, …
Run Code Online (Sandbox Code Playgroud)

gem ruby-on-rails-4 capistrano3

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

boto在docker中的奇怪行为

我正在运行以下内容image:

docker run -it --rm python:3.4-slim  /bin/bash
Run Code Online (Sandbox Code Playgroud)

在里面(as root),我安装:

root@dab02ca9c61d:~# apt-get update && apt-get install nano
Run Code Online (Sandbox Code Playgroud)

然后 boto

root@dab02ca9c61d:~# pip install boto
Run Code Online (Sandbox Code Playgroud)

然后我写了以下内容/root/.boto:

[Credentials]
aws_access_key_id = some_long_string
aws_secret_access_key = another_bigger_string

[Boto]
debug = 2
num_retries = 10
Run Code Online (Sandbox Code Playgroud)

(此文件与我在主机中的文件相同)

版本是:

root@dab02ca9c61d:~# python -V
Python 3.4.4
root@dab02ca9c61d:~# pip list
boto (2.38.0)
pip (7.1.2)
setuptools (18.2)
root@dab02ca9c61d:~# 
Run Code Online (Sandbox Code Playgroud)

(与我在主机/本地机器上完全相同)

如果我解雇了python控制台:

root@dab02ca9c61d:~# python
Python 3.4.4 (default, Jan  8 2016, 00:24:55) 
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" …
Run Code Online (Sandbox Code Playgroud)

python boto docker

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