小编Dar*_*ero的帖子

如何在Spark SQL中将额外参数传递给UDF?

我想解析a中的日期列DataFrame,对于每个日期列,日期的分辨率可能会发生变化(例如,如果分辨率设置为"月",则为2011/01/10 => 2011/01).

我写了以下代码:

def convertDataFrame(dataframe: DataFrame, schema : Array[FieldDataType], resolution: Array[DateResolutionType]) : DataFrame =
{
  import org.apache.spark.sql.functions._
  val convertDateFunc = udf{(x:String, resolution: DateResolutionType) => SparkDateTimeConverter.convertDate(x, resolution)}
  val convertDateTimeFunc = udf{(x:String, resolution: DateResolutionType) => SparkDateTimeConverter.convertDateTime(x, resolution)}

  val allColNames = dataframe.columns
  val allCols = allColNames.map(name => dataframe.col(name))

  val mappedCols =
  {
    for(i <- allCols.indices) yield
    {
      schema(i) match
      {
        case FieldDataType.Date => convertDateFunc(allCols(i), resolution(i)))
        case FieldDataType.DateTime => convertDateTimeFunc(allCols(i), resolution(i))
        case _ => allCols(i)
      }
    }
  }

  dataframe.select(mappedCols:_*)

}}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.似乎我只能将 …

scala user-defined-functions apache-spark apache-spark-sql

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

确定性政策梯度优于随机政策梯度的优势是什么?

深度确定性政策梯度(DDPG)是动作空间连续时强化学习的最先进方法.其核心算法是确定性策略梯度.

然而,在阅读了论文并听取了谈话之后(http://techtalks.tv/talks/deterministic-policy-gradient-algorithms/61098/),我仍然无法弄清楚确定性PG比Stochastic PG的基本优势是什么.谈话说它更适合高维动作并且更容易训练,但为什么呢?

reinforcement-learning

11
推荐指数
2
解决办法
1929
查看次数

如何在Pyspark中将列表拆分为多个列?

我有:

key   value
a    [1,2,3]
b    [2,3,4]
Run Code Online (Sandbox Code Playgroud)

我想要:

key value1 value2 value3
a     1      2      3
b     2      3      4
Run Code Online (Sandbox Code Playgroud)

似乎在scala我可以写:df.select($"value._1", $"value._2", $"value._3"),但在python中是不可能的.

那么有一个很好的方法吗?

apache-spark-sql pyspark

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

如何在Spark SQL中表示名称包含空格的列

我们尝试用括号[column name],单引号和双引号以及反引号来包装列名,但它们都不起作用.

Spark SQL是否支持名称中包含空格的列?

谢谢!

apache-spark apache-spark-sql

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

为什么xgboost.cv和sklearn.cross_val_score给出不同的结果?

我正在尝试对数据集进行分类。我首先使用XGBoost:

import xgboost as xgb
import pandas as pd
import numpy as np

train = pd.read_csv("train_users_processed_onehot.csv")
labels = train["Buy"].map({"Y":1, "N":0})

features = train.drop("Buy", axis=1)
data_dmat = xgb.DMatrix(data=features, label=labels)

params={"max_depth":5, "min_child_weight":2, "eta": 0.1, "subsamples":0.9, "colsample_bytree":0.8, "objective" : "binary:logistic", "eval_metric": "logloss"}
rounds = 180

result = xgb.cv(params=params, dtrain=data_dmat, num_boost_round=rounds, early_stopping_rounds=50, as_pandas=True, seed=23333)
print result
Run Code Online (Sandbox Code Playgroud)

结果是:

        test-logloss-mean  test-logloss-std  train-logloss-mean  
0             0.683539          0.000141            0.683407
179           0.622302          0.001504            0.606452  
Run Code Online (Sandbox Code Playgroud)

我们可以看到它在0.622左右。

但是当我切换为sklearn使用完全相同的参数(我认为)时,结果却大不相同。下面是我的代码:

from sklearn.model_selection import cross_val_score
from xgboost.sklearn import XGBClassifier
import pandas as pd …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn cross-validation xgboost

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

非政策性学习方法是否优于政策方法?

我无法理解on-policy方法(如A3C)和off-policy方法(如DDPG)之间的根本区别是什么.据我所知,无论行为政策如何,非政策方法都可以学习最优政策.它可以通过观察环境中的任何轨迹来学习.因此,我可以说非政策方法比政策方法更好吗?

我已经阅读了悬崖行走的例子,显示了SARSA和之间的区别Q-learning.它表示Q-learning将学习沿着悬崖行走的最佳政策,同时SARSA学会在使用epsilon-greedy政策时选择更安全的方式.但既然Q-learning已经告诉我们最优政策,为什么我们不遵循这一政策而不是继续探索?

另外,两种学习方法的情况是否优于另一种?在哪种情况下,人们更喜欢on-policy算法?

reinforcement-learning q-learning

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

如何在 Pycharm 中通过 ipv6 添加远程解释器?

我的服务器只有一个ipv6地址,我的电脑可以ssh通过这个地址直接访问。但是当我尝试在 Pycharm 的这台服务器上添加远程解释器时,它告诉我SFTP host is invalid什么时候看到 ipv6 地址。

我怎样才能让它工作?谢谢!

在此处输入图片说明

更新:添加括号[2001:da8:...]有助于通过主机语法检查。但是现在单击“确定”后,Pycharm 会告诉我“java.net.SocketException:协议系列不可用”。这个怎么通过?

remote-debugging ipv6 pycharm

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