小编Ram*_*ami的帖子

SPARK,ML,Tuning,CrossValidator:访问指标

为了构建NaiveBayes多类分类器,我使用CrossValidator来选择管道中的最佳参数:

val cv = new CrossValidator()
        .setEstimator(pipeline)
        .setEstimatorParamMaps(paramGrid)
        .setEvaluator(new MulticlassClassificationEvaluator)
        .setNumFolds(10)

val cvModel = cv.fit(trainingSet)
Run Code Online (Sandbox Code Playgroud)

管道包含通常的变换器和估计器,顺序如下:Tokenizer,StopWordsRemover,HashingTF,IDF,最后是NaiveBayes.

是否可以访问为最佳模型计算的指标?

理想情况下,我想访问所有模型的指标,以了解更改参数如何改变分类的质量.但目前,最好的模型已经足够好了.

仅供参考,我使用的是Spark 1.6.0

apache-spark apache-spark-ml apache-spark-mllib

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

Spark 1.6:过滤由describe()生成的DataFrames

当我describe在DataFrame上调用函数时出现问题:

val statsDF = myDataFrame.describe()
Run Code Online (Sandbox Code Playgroud)

调用describe函数会产生以下输出:

statsDF: org.apache.spark.sql.DataFrame = [summary: string, count: string]
Run Code Online (Sandbox Code Playgroud)

我可以statsDF通过电话正常显示statsDF.show()

+-------+------------------+
|summary|             count|
+-------+------------------+
|  count|             53173|
|   mean|104.76128862392568|
| stddev|3577.8184333911513|
|    min|                 1|
|    max|            558407|
+-------+------------------+
Run Code Online (Sandbox Code Playgroud)

我想现在得到标准差和平均值statsDF,但是当我试图通过做类似的事情来收集值时:

val temp = statsDF.where($"summary" === "stddev").collect()
Run Code Online (Sandbox Code Playgroud)

我越来越Task not serializable异常了.

我打电话时也面临同样的异常:

statsDF.where($"summary" === "stddev").show()
Run Code Online (Sandbox Code Playgroud)

看起来我们无法过滤函数生成的DataFrame describe()

apache-spark apache-spark-sql apache-zeppelin

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

有限等待互斥与测试和设置

我正在阅读着名的操作系统概念书(Avi Silberschatz,Peter Baer Galvin,Greg Gagne)第9版:http://codex.cs.yale.edu/avi/os-book/OS9/

在进程同步章节中,有一个"Bounded-waiting Mutual Exclusion with test_and_set"的算法如下:

do {
    waiting[i] = true;
    key = true;  // <-- Boolean variable that I do not see its utility
    while (waiting[i] && key) // <-- the value of the key variable here is always true
        key = test_and_set(&lock); // <-- it might become false here, but what is the point?
    waiting[i] = false;

    /* critical section */

    j = (i + 1) % n;
    while ((j != …
Run Code Online (Sandbox Code Playgroud)

synchronization operating-system locking mutual-exclusion

7
推荐指数
1
解决办法
6180
查看次数

Spark,DataFrame:在组上应用变换器/估计器

我有一个看起来如下的DataFrame:

+-----------+-----+------------+
|     userID|group|    features|
+-----------+-----+------------+
|12462563356|    1|  [5.0,43.0]|
|12462563701|    2|   [1.0,8.0]|
|12462563701|    1|  [2.0,12.0]|
|12462564356|    1|   [1.0,1.0]|
|12462565487|    3|   [2.0,3.0]|
|12462565698|    2|   [1.0,1.0]|
|12462565698|    1|   [1.0,1.0]|
|12462566081|    2|   [1.0,2.0]|
|12462566081|    1|  [1.0,15.0]|
|12462566225|    2|   [1.0,1.0]|
|12462566225|    1|  [9.0,85.0]|
|12462566526|    2|   [1.0,1.0]|
|12462566526|    1|  [3.0,79.0]|
|12462567006|    2| [11.0,15.0]|
|12462567006|    1| [10.0,15.0]|
|12462567006|    3| [10.0,15.0]|
|12462586595|    2|  [2.0,42.0]|
|12462586595|    3|  [2.0,16.0]|
|12462589343|    3|   [1.0,1.0]|
+-----------+-----+------------+
Run Code Online (Sandbox Code Playgroud)

列类型为:userID:Long,group:Int和features:vector.

这已经是分组的DataFrame,即userID将最多一次出现在特定的组中.

我的目标是features按组扩展列.

有没有办法在每个组中应用特征变换器(在我的情况下我想应用StandardScaler)而不是将其应用于完整的DataFrame.

使用ML的PS不是强制性的,因此如果解决方案基于MLlib则没有问题.

apache-spark spark-dataframe apache-spark-ml apache-spark-mllib

7
推荐指数
1
解决办法
866
查看次数

在一个 POST 命令中卷曲多个数据

谁能告诉我我是否可以(在命令行中)发出包含文件和其他参数的 POST 命令?

我正在尝试执行以下操作:

curl -X POST -F "key=myKey&file=@myfile.txt"  http://localhost:8080/myRestService/
Run Code Online (Sandbox Code Playgroud)

我在这个领域真的很新,所以请原谅我的基本问题。但它似乎效果不佳。有什么建议吗?非常坦克你

post curl web-services

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

为什么在Java中将String解析为Date很慢?我们可以加速吗?

我正在读取包含日期的文本文件,我想在Java中将表示日期的字符串解析为Date对象.我注意到操作很慢.为什么?有没有办法加速呢?我的文件看起来像:

2012-05-02 12:08:06:950, secondColumn, thirdColumn
2012-05-02 12:08:07:530, secondColumn, thirdColumn
2012-05-02 12:08:08:610, secondColumn, thirdColumn
Run Code Online (Sandbox Code Playgroud)

我正在逐行读取文件,然后我String从每一行获取日期,然后我Date使用SimpleDateFormat如下方法将其解析为对象:

DataInputStream in = new DataInputStream(myFileInputStream);
BufferedReader  br = new BufferedReader(new InputStreamReader(in));
String strLine;

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while ((strLine = br.readLine()) != null)
{
    ....Do things....
    Date myDateTime = (Date)formatter.parse(myDateString);
    ...Do things....
}
Run Code Online (Sandbox Code Playgroud)

java date date-parsing simpledateformat

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

"log4j:错误无法找到密钥log4j.appender.SQL_APPENDER的值"背后的原因是什么?

我想知道为什么在部署我的Web应用程序时出现此错误.

log4j: Error Could not find value for key log4j.appender.SQL_APPENDER
Run Code Online (Sandbox Code Playgroud)

这是我的log4j.properties档案.

log4j.rootLogger=error, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=application.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER
log4j.additivity.org.hibernate.SQL=false
Run Code Online (Sandbox Code Playgroud)

我是否必须在服务器端进行一些配置?我在Tomcat 7服务器上运行我的应用程序.我将此依赖项添加到pom.xml文件中:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

java log4j web-applications pom.xml tomcat7

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

SPARK,DataFrame:连续行中Timestamp列的差异

我有一个DateFrame如下:

+---+---------------------+---------------------+
|id |initDate             |endDate              |
+---+---------------------+---------------------+
|138|2016-04-15 00:00:00.0|2016-04-28 00:00:00.0|
|138|2016-05-09 00:00:00.0|2016-05-23 00:00:00.0|
|138|2016-06-04 00:00:00.0|2016-06-18 00:00:00.0|
|138|2016-06-18 00:00:00.0|2016-07-02 00:00:00.0|
|138|2016-07-09 00:00:00.0|2016-07-23 00:00:00.0|
|138|2016-07-27 00:00:00.0|2016-08-10 00:00:00.0|
|138|2016-08-18 00:00:00.0|2016-09-01 00:00:00.0|
|138|2016-09-13 00:00:00.0|2016-09-27 00:00:00.0|
|138|2016-10-04 00:00:00.0|null                 |
+---+---------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)

该行是通过有序id然后initDate按升序排列列.两列initDateendDate列都具有Timestamp类型.为了便于说明,我只显示了属于一个id值的记录.

我的目标是增加一个新列,显示每个id之间的差值(以天为单位的短期)initDate每行和endDate上一行.

如果没有前一行,则该值将为-1.

输出应如下所示:

+---+---------------------+---------------------+----------+
|id |initDate             |endDate              |difference|
+---+---------------------+---------------------+----------+
|138|2016-04-15 00:00:00.0|2016-04-28 00:00:00.0|-1        |
|138|2016-05-09 00:00:00.0|2016-05-23 00:00:00.0|11        |
|138|2016-06-04 00:00:00.0|2016-06-18 00:00:00.0|12        |
|138|2016-06-18 00:00:00.0|2016-07-02 00:00:00.0|0         |
|138|2016-07-09 …
Run Code Online (Sandbox Code Playgroud)

apache-spark spark-dataframe

6
推荐指数
2
解决办法
3519
查看次数

Tomcat servlet引擎未运行,但pid文件存在.这条消息是什么意思?如果我得到它,我需要恢复Tomcat吗?

我正在制作一个shell脚本,以便在崩溃后重启tomcat.我想我需要在我的脚本中处理此消息"Tomcat servlet引擎未运行,但pid文件存在." 这个消息意味着什么?我是否需要将其作为错误消息考虑在内,迫使我重新启动Tomcat?

我的脚本如下:

#!/bin/bash
SERVICE=/etc/init.d/tomcat7
STOPPED_MESSAGE=" * Tomcat servlet container is not running."  
PID_FILE_MESSAGE=" * Tomcat servlet engine is not running, but pid file exists."

if [ "`$SERVICE status`" == "$STOPPED_MESSAGE" ];
then  
{
    $SERVICE start
}
else
    if [ "`$SERVICE status`" == "$PID_FILE_MESSAGE" ];
    then
    {
        $SERVICE restart
    }
    fi
fi
Run Code Online (Sandbox Code Playgroud)

shell tomcat crontab recover tomcat7

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

获取长期运行的更新查询的任务Elasticsearch的状态

假设我有一个运行时间很长的更新查询,我正在将〜200k更新为500k,甚至更多。为什么我需要更新这么多文档不在问题范围之内。

由于客户端超时(我使用官方的ES python客户端),因此我希望有一种方法来检查批量更新请求的状态,而不必使用巨大的超时值。

对于简短的请求,可以使用请求的响应,是否可以获取请求的响应,或者是否可以为请求指定nameid以便稍后引用。

对于正在运行的请求:我可以使用tasks API获取信息。

但是对于其他状态-已完成/失败,我该如何获取。如果我尝试访问已完成的任务,则会得到resource not found

我正在使用update_by_query更新的PS

nosql elasticsearch elasticsearch-5

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