小编Mic*_*ior的帖子

Spark - 迭代算法的奇怪行为

我尝试用Spark编写迭代算法.该算法包含一个主循环,其中使用不同的并行性火花命令.如果在每次迭代中只使用一个spark命令,一切正常,但是当使用多个命令时,Spark的行为变得非常奇怪.主要问题是在具有2个项目的rdd上的map命令不会导致2但在许多函数调用中.

它看起来像Spark正在迭代x中执行从迭代1到迭代(x-1)的每个命令.但不仅在循环的最后一次迭代中,而且在循环的每次迭代中!

我构建了一个小例子来重现行为(使用Java 1.8和Spark 1.6.1)

首先是rdd中使用的数据结构:

public class Data implements Serializable {
    private static final long serialVersionUID = -6367920689454127925L;
    private String id;
    private Integer value;

    public Data(final String id, final Integer value) {
        super();
        this.id = id;
        this.value = value;
    }

    public String getId() {
        return this.id;
    }

    public Integer getValue() {
        return this.value;
    }

    public void setValue(final Integer value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return "Data [id=" + this.id + ", value=" + this.value …
Run Code Online (Sandbox Code Playgroud)

iteration algorithm apache-spark

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

Spark是否将中间shuffle输出写入磁盘

我正在阅读学习Spark,我不明白Spark的shuffle输出写入磁盘是什么意思.请参见第8章,调优和调试Spark,第148-149页:

如果现有RDD已经存在于集群内存或磁盘上,Spark的内部调度程序可能会截断RDD图的谱系.这种截断可能发生的第二种情况是RDD已经实现为早期shuffle的副作用,即使它没有明确地持久化.这是一个底层优化,它利用了Spark shuffle输出写入磁盘的事实,并利用了RDD图的许多部分被重新计算的事实.

据我所知,存在不同的持久性策略,例如,默认值MEMORY_ONLY意味着中间结果永远不会持久保存到磁盘.

何时以及为什么洗牌会在磁盘上持续存在?如何通过进一步的计算重用它?

apache-spark rdd

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

在合金中编程递归函数

我正在尝试在 Alloy 中构造一个递归函数。根据丹尼尔·杰克逊书中显示的语法,这是可能的。我的职能是:

fun auxiliaryToAvoidCyclicRecursion[idTarget:MethodId, m:Method]: Method{
    (m.b.id = idTarget) => {
        m
    } else (m.b.id != idTarget) => {
        (m.b = LiteralValue) => {
           m 
        } else {
           some mRet:Method, c:Class | mRet in c.methods && m.b.id = mRet.id => auxiliaryToAvoidCyclicRecursion[idTarget, mRet]
        }       
    }
}
Run Code Online (Sandbox Code Playgroud)

但求解器声称该调用auxiliaryToAvoidCyclicRecursion[idTarget, mRet]是这样的:

"This must be a formula expression.
Instead, it has the following possible type(s):
{this/Method}"
Run Code Online (Sandbox Code Playgroud)

recursion alloy

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

MySQL存储过程中的条件WHERE子句

下面是我创建的存储过程的简化示例.

DELIMITER //
CREATE PROCEDURE test (IN val1 INT, IN val2 INT)
BEGIN
  UPDATE TABLE SET value=val1 WHERE cond=val2;
END //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

现在,假设我想使条件可选.我可以通过设置val2NULL调用过程然后使用IF语句来使用条件(如果值不是)来执行此操作NULL.(在我的情况下,可以安全地假设这cond=NULL不是检查的有效条件.)

这是有效的,但UPDATE我的查询要复杂得多,复制它似乎很不幸只是为了使条件可选.我可以动态构造查询字符串并传递给EXECUTE,但这也感觉不对,我失去了语法检查.

有什么建议?谢谢!

mysql stored-procedures

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

为什么方法“组合”在 Scala 中返回 Iterator 而不是 Stream?

我注意到方法combinations(从这里)返回Iterator。该方法应该是“懒惰的”以避免提前生成所有组合,这看起来很合理。现在我想知道,为什么它返回Iterator而不是Stream(这是 Scala 中的惰性列表)。

那么,为什么combinationsreturnIterator而不是Stream

iterator scala stream lazy-evaluation scala-collections

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

使用ClassTag查看我拥有的是否与模板类型相同

Map我正在尝试编写一个模板函数,该函数从基于类型中检索值。如果模板类型与 中的类型不匹配Map,则应返回None

val validMetadata: Map[String, Any] = Map(
  "string" -> "this is a string",
  "int" -> 12,
  "double" -> 12.12
)

import scala.reflect.runtime.universe._
private def getMetadata[T](key: String)(implicit tag: TypeTag[T]): Option[T] =
  validMetadata.get(key) match {
    case Some(scalar) if scalar.getClass == tag.tpe => Option(scalar)
    case _ => None
  }

getMetadata[Int]("int") // should return Option(12)
getMetadata[Int]("string") // should return None
Run Code Online (Sandbox Code Playgroud)

这是行不通的,我尝试过的数百种变体也行不通。知道我怎样才能做到这一点吗?

scala

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

使用Pinax启动Django时出错

在尝试启动Pinax应用程序时,我收到以下错误:

Error: No module named notification
Run Code Online (Sandbox Code Playgroud)

以下是我采取的步骤

svn co http://svn.pinaxproject.com/pinax/trunk/ pinax 
cd pinax/pinax/projects/basic_project
./manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

有什么建议?


更新:

事实证明,SVN版本存在一些漏洞.下载最新版本解决了我的问题.如果任何人有关于使行李箱工作的任何其他建议,他们仍然会受到赞赏.

python django pinax

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

为什么travis ci没有在NODE_ENV生产中运行"npm install"

我尝试使用配置在Travis CI中编译我的项目

language: node_js
node_js:
  - 0.12
env:
  global:
    - NODE_ENV=production
before_install:
  # - npm run init
before_script:
  # - bower install
  # - gulp
  # - npm install
script:
  - npm install -g bower
  - npm install -g gulp
  - gulp
  - npm run lint
sudo: false
Run Code Online (Sandbox Code Playgroud)

如果我在我的配置中设置

- NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)

Travis CI很好地编译我的项目.

javascript travis-ci

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

Apache Calcite在SQL字符串中查找选定的列

我有一个用例,我想知道在SQL
SELECT name, age*5 as intelligence FROM bla WHERE bla=bla
字符串中选择的列,例如,如果SQL是这样的:那么在解析上面的String之后,我只希望输出是:name, intelligence
首先,是否可以通过方解石?
也欢迎任何其他选择。

PS:在实际在数据库上运行查询之前,我想知道这一点。

java sql-parser apache-calcite

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

无法在 Java 中使用枚举(错误:找不到符号)

所以我有一个类文件,里面只有我的枚举,看起来像这样

public class FactionNames {
    public enum Faction {AMITY, ABNEGATION, DAUNTLESS, ERUDITE, CANDOR};
}
Run Code Online (Sandbox Code Playgroud)

我有一个在构造函数中使用这些枚举的类,它看起来像这样

public Dauntless(String f, String l, int a,  int ag, int end, Faction d) {
        super(f, l, a, d);
        if (ag >= 0 && ag <= 10) {
            this.agility = ag;
        } else {
            this.agility = 0;
        }
        if (end >= 0 && end <= 10) {
            this.endurance = end;
        } else {
            this.endurance = 0;
        }
    }
Run Code Online (Sandbox Code Playgroud)

因此,为了确保此类中的所有内容都正常工作,我想在驱动程序中创建一些 Dauntless 对象,但我不断收到这些错误

D:\Documents\Google Drive\Homework\1331
Test.java:3: error: cannot …
Run Code Online (Sandbox Code Playgroud)

java enums subclass

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