我想在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亿行,我希望它快.
哪种方法更好?有什么区别?选择随机行的最佳方法是什么?
我正在尝试使用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) 我正在使用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的特征向量?如何计算他们解释的方差?
我有一个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) 我在一个大数据问题中使用随机森林,它有一个非常不平衡的响应类,所以我阅读了文档,我发现了以下参数:
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)
对不起如果我做了很多(也许是愚蠢的)问题......
我的初始文件在AWS S3
.有人能指出我需要在一个设置这个Luigi Task
吗?
我查看了文档luigi.S3
但发现但不清楚我该如何处理,然后我在网上搜索,只获取mortar-luigi
luigi顶部的链接和实现.
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) 我有一个成功的随机森林模型,我想将它集成到另一个软件中,我知道我可以使用一些库(比如Java中的fastRF或ALGLIB的DecisionForest用于其他语言),但我如何使用R中训练的"模型"?我必须用新语言重新训练它吗?
另一种观点是以某种方式提取它,但我不知道该怎么做...
任何帮助将不胜感激
提前致谢
我已经成功地用于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) 我正在使用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) 我正在运行以下内容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 ×3
r ×3
docker ×2
alglib ×1
amazon-s3 ×1
apache-kafka ×1
apache-spark ×1
boto ×1
capistrano3 ×1
dask ×1
gem ×1
java ×1
kafka-python ×1
knitr ×1
luigi ×1
pandas ×1
pca ×1
performance ×1
postgresql ×1
pyspark ×1
random ×1
sql ×1