小编use*_*916的帖子

PySpark:withColumn()有两个条件和三个结果

我正在使用Spark和PySpark.我试图实现相当于以下伪代码的结果:

df = df.withColumn('new_column', 
    IF fruit1 == fruit2 THEN 1, ELSE 0. IF fruit1 IS NULL OR fruit2 IS NULL 3.)
Run Code Online (Sandbox Code Playgroud)

我试图在PySpark中这样做,但我不确定语法.有什么指针吗?我调查expr()但无法让它工作.

请注意,这df是一个pyspark.sql.dataframe.DataFrame.

hive hiveql apache-spark apache-spark-sql pyspark

29
推荐指数
3
解决办法
9万
查看次数

Spark DataFrame中向量的访问元素(Logistic回归概率向量)

我在PySpark(ML包)中训练了LogisticRegression模型,预测结果是PySpark DataFrame(cv_predictions)(参见[1]).该probability列(见[2])是一种vector类型(见[3]).

[1]
type(cv_predictions_prod)
pyspark.sql.dataframe.DataFrame

[2]
cv_predictions_prod.select('probability').show(10, False)
+----------------------------------------+
|probability                             |
+----------------------------------------+
|[0.31559134817066054,0.6844086518293395]|
|[0.8937864350711228,0.10621356492887715]|
|[0.8615878905395029,0.1384121094604972] |
|[0.9594427633777901,0.04055723662220989]|
|[0.5391547673698157,0.46084523263018434]|
|[0.2820729747752462,0.7179270252247538] |
|[0.7730465873083118,0.22695341269168817]|
|[0.6346585276598942,0.3653414723401058] |
|[0.6346585276598942,0.3653414723401058] |
|[0.637279255218404,0.362720744781596]   |
+----------------------------------------+
only showing top 10 rows

[3]
cv_predictions_prod.printSchema()
root
 ...
 |-- rawPrediction: vector (nullable = true)
 |-- probability: vector (nullable = true)
 |-- prediction: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)

如何创建解析vectorPySpark DataFrame,以便创建一个新列,只拉取每个probability向量的第一个元素?

这个问题类似于,但下面链接中的解决方案不起作用/我不清楚:

如何在PySpark中访问denseVector的值

如何访问Spark DataFrame中VectorUDT列的元素?

python apache-spark pyspark spark-dataframe apache-spark-ml

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

Python xgboost:内核死亡

我的Jupyter笔记本的python内核不断消亡。我之前已经成功运行了以下所有代码。目前,存在问题。首先,我将向您展示我能够成功运行的代码块:

import xgboost as xgb
xgtrain = xgb.DMatrix(data = X_train_sub.values, label = Y_train.values)       # create dense matrix of training values
xgtest  = xgb.DMatrix(data = X_test_sub.values,  label = Y_test.values)        # create dense matrix of test values
param   = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}  # specify parameters via map
Run Code Online (Sandbox Code Playgroud)

我的数据很小的地方:

X_train_imp_sub.shape
(1365, 18)
Run Code Online (Sandbox Code Playgroud)

但是,我笔记本的内核一直死在这个块上:

xgmodel = xgb.train(param,  xgtrain, num_boost_round = 2)                      # train the model
predictions = xgmodel.predict(xgtest)                                          # make prediction
from sklearn.metrics import accuracy_score                                   
accuracy = accuracy_score(y_true = Y_test, 
                          y_pred = predictions.round(), …
Run Code Online (Sandbox Code Playgroud)

python xgboost

13
推荐指数
2
解决办法
4356
查看次数

R中没有X11

问题

我正在跟踪一些代码并得到与X11相关的错误.为了重新创建我的错误,我运行了x11()并获得了以下内容:

> x11()
Error in x11() : X11 is not available
Run Code Online (Sandbox Code Playgroud)

我确实在R中绘制了加载XQuartz程序以显示的东西.

我尝试了什么

  • 我做了?x11(),看到它来自{grDevices}包装.我加载了该库,再次尝试,但得到了同样的错误.我读到X11与XQuartz有关.
  • 我重新安装了XQuartz 2.7.8.我有R 3.2.3并且正在运行OSX El Capitan版本10.11.4(15E65).重新安装后我重启了两次.
  • install.packages("Cairo")

    > x11( width=3, height=3) Error in x11(width = 3, height = 3) : X11 is not available

    > Sys.getenv("DISPLAY") [1] "/private/tmp/com.apple.launchd.F1bsaVCA43/org.macosforge.xquartz:0"

    > capabilities() jpeg png tiff tcltk X11 aqua http/ftp TRUE TRUE TRUE TRUE FALSE TRUE TRUE sockets libxml fifo cledit iconv NLS profmem TRUE TRUE TRUE TRUE TRUE TRUE TRUE cairo ICU long.double libcurl …

x11 r

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

Python XGBoost 分类器无法“预测”:“TypeError:不支持数据类型”

我有一个像这样的数据集:

print(X_test.dtypes)
metric1                    int64
rank                     float64
device_type                 int8
NA_estimate              float64
Run Code Online (Sandbox Code Playgroud)

当我尝试对此数据集进行预测时,出现以下错误:

y_test_pred_xgb = clf_xgb.predict(xgb.DMatrix(X_test))
TypeError: Not supported type for data.<class 'xgboost.core.DMatrix'>
Run Code Online (Sandbox Code Playgroud)

我进行了一些搜索,但只找到了object引起问题的变量数据类型的讨论。我的数据是否还有其他问题或者问题是其他原因?我查看了各种博客和 Kaggle 代码,但没有运气。

python typeerror xgboost xgbclassifier

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

ARRAY_CONTAINS在pyspark中的多个值

我正在和一个人合作pyspark.sql.dataframe.DataFrame.我想stack基于多个变量而不是单个变量来过滤行{val}.我正在使用Python 2 Jupyter笔记本.目前,我做了以下事情:

stack = hiveContext.sql("""
    SELECT * 
    FROM db.table
    WHERE col_1 != ''
""")

stack.show()
+---+-------+-------+---------+
| id| col_1 | . . . | list    |
+---+-------+-------+---------+
| 1 |   524 | . . . |[1, 2]   |
| 2 |   765 | . . . |[2, 3]   |
.
.
.
| 9 |   765 | . . . |[4, 5, 8]|

for i in len(list):
    filtered_stack = stack.filter("array_contains(list, {val})".format(val=val.append(list[i])))
    (some query …
Run Code Online (Sandbox Code Playgroud)

python sql hive pyspark

6
推荐指数
1
解决办法
3571
查看次数

为什么 20 行 PySpark 数据帧上的 .show() 这么慢?

我在 Jupyter 笔记本中使用 PySpark。以下步骤最多需要 100 秒,这是可以的。

toydf = df.select("column_A").limit(20)
Run Code Online (Sandbox Code Playgroud)

但是,接下来的show()步骤需要 2-3 分钟。它只有 20 行整数列表,每个列表不超过 60 个元素。为什么需要这么长时间?

toydf.show()
Run Code Online (Sandbox Code Playgroud)

df 生成如下:

spark = SparkSession.builder\
    .config(conf=conf)\
    .enableHiveSupport()\
    .getOrCreate()
df = spark.sql("""SELECT column_A
                        FROM datascience.email_aac1_pid_enl_pid_1702""")
Run Code Online (Sandbox Code Playgroud)

hive apache-spark apache-spark-sql pyspark

6
推荐指数
1
解决办法
4184
查看次数

R,dplyr:该函数可根据条件快速构建互补行的列表

我有一个约80,000行乘26列的数据集。这些行对应于“ SKU”或机器人构建集的唯一ID。这些列对应于26个不同的机器人零件。一个单元包含一部分对构建整个机器人的贡献。行的比例之和可能不等于1.0,因为构建集不一定总具有构建整个机器人所需的零件的100%。

主要目标是构建一个接受SKU作为输入并输出互补SKU列表的功能。补充行定义为:

  1. 如果给定的行的列非零值,则补码对该列的值必须为零。

目标是找到补充给定SKU的所有可能的SKU集,从而可以构建整个机器人。另外,重要的是要看到weightedPrice这套“科学怪人” SKU的每个机器人的加权收入(“ ”)。很好地展示了weightedPrice每个补充SKU的添加如何变化。

最低工作玩具示例(MWE):

set.seed(1)
a = runif(n=60, min=0, max=0.2)
a[a<0.12] = 0
n = 10
A = as.data.frame(matrix(a,              
                         nrow=n,         
                         ncol=6,         
                         byrow = TRUE))
A$rowTally <- rowSums(A != 0)
A$sku <- seq(from = 1, to = n)
A$totalDollarSales <- runif(n=n, min=1*10^2, max=1*10^6)
A$totalUnitSales <- runif(n=n, min=1*10^2, max=1*10^6)
names(A) <- c("p1_prop", "p2_prop", "p3_prop", "p4_prop", "p5_prop", "p6_prop", "rowTally", "sku", "totalDollarSales", "totalUnitSales")
A <- A[c("sku", "p1_prop", "p2_prop", "p3_prop", "p4_prop", "p5_prop", "p6_prop", "rowTally", "totalDollarSales", "totalUnitSales")]
A$dollarsPerRobot …
Run Code Online (Sandbox Code Playgroud)

r dplyr

6
推荐指数
1
解决办法
560
查看次数

如何使用 RStudio 用 Stata 命令编写 RMarkdown 文件?

我的问题在标题中得到了解释。我已经尝试编译我在这里找到的示例 .Rmd:http ://www.ssc.wisc.edu/~hemken/Stataworkshops/Stata%20and%20R%20Markdown/ 除了在线查找各种资源无济于事之外。虽然我的资源 Doug 能够编译 RMarkdown,但下面的 MWE 出现错误。

MWE 是:

---
title: "Stata and R Markdown (Windows)"
author: "Doug Hemken"
date: "July 2015"
output: 
html_document:
toc: yes
---

```{r, echo=FALSE, message=FALSE}
require(knitr)
statapath <- "/Applications/Stata/Stata.app"
opts_chunk$set(engine="stata", engine.path=statapath, comment="")
```

### Descriptive Statistics
A simple example.
```{r}
sysuse auto
summarize
```
Run Code Online (Sandbox Code Playgroud)

RStudio 控制台的输出/错误是:

processing file: stata.Rmd
  |................                                                 |  25%
   ordinary text without R code

  |................................                                 |  50%
label: unnamed-chunk-1 (with options) 
List of 2
$ echo   : logi FALSE …
Run Code Online (Sandbox Code Playgroud)

stata rstudio r-markdown

5
推荐指数
1
解决办法
2622
查看次数

Levenshtein(编辑)距离的标准化差异?

如果两个字符串之间的Levenshtein距离,s并且t由下式给出L(s,t)

以下两种不同的规范化方案对结果启发式的影响有何不同?

  1. L(s,t) / [length(s) + length(t)]

  2. L(s,t) / max[length(s), length(t)]

  3. (L(s,t)*2) / [length(s) + length(t)]

我注意到Levenshtein距离Wikipedia页面建议使用规范化方法2,但没有提及方法1。这两种方法是否同样有效?只是想知道是否有数学上的理由来使用一种方法。

另外,方法1和方法3有什么区别?

用下面的例子:

s = "Hi, my name is"

t = "Hello, my name is"

L(s,t) = 4

length(s) = 14 (包括空格)

length(t) = 17 (包括空格)

给出以上三种归一化算法的Levenshtein距离为:

  1. 4 /(14 + 17)= 0.129

  2. 4 /(17)= 0.235

  3. (4 * 2)/(14 + 17)= 0.258

string algorithm edit-distance levenshtein-distance

5
推荐指数
1
解决办法
464
查看次数