小编Nab*_*egh的帖子

如何检查Map中是否存在键或值?

我有一个scala Map,想测试地图中是否存在某个值.

myMap.exists( /*What should go here*/ )
Run Code Online (Sandbox Code Playgroud)

collections dictionary scala

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

如何将Column.isin与列表一起使用?

val items = List("a", "b", "c")

sqlContext.sql("select c1 from table")
          .filter($"c1".isin(items))
          .collect
          .foreach(println)
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出以下异常.

Exception in thread "main" java.lang.RuntimeException: Unsupported literal type class scala.collection.immutable.$colon$colon List(a, b, c) 
at org.apache.spark.sql.catalyst.expressions.Literal$.apply(literals.scala:49)
at org.apache.spark.sql.functions$.lit(functions.scala:89)
at org.apache.spark.sql.Column$$anonfun$isin$1.apply(Column.scala:642)
at org.apache.spark.sql.Column$$anonfun$isin$1.apply(Column.scala:642)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:245)
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
at org.apache.spark.sql.Column.isin(Column.scala:642)
Run Code Online (Sandbox Code Playgroud)

以下是我尝试修复它.它编译并运行但不返回任何匹配.不知道为什么.

val items = List("a", "b", "c").mkString("\"","\",\"","\"")

sqlContext.sql("select c1 from table")
          .filter($"c1".isin(items))
          .collect
          .foreach(println)
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

58
推荐指数
3
解决办法
4万
查看次数

Scala演员和环境参考

Phillip Haller的博士论文中,他在(5.1未来工作)部分提到,研究的一个有趣领域是扩展框架与环境参考,他引用了Van Cutsen的论文.

摘抄:

Scala Actors库包括一个运行时系统,它为远程(即VM间)actor参与者提供基本支持.为了提供对容错的支持(例如,在移动ad-hoc网络中),使用支持volatile连接的远程actor引用来扩展框架会很有趣,类似于环境引用[36].将容错分布式编程(例如,[52,142])的事务抽象集成到Scala Actors中是未来工作的另一个有趣领域.

引用的纸张是:

[36] Tom Van Cutsem,Jessie Dedecker,Stijn Mostinckx,Elisa Gonzalez Boix,Theo D'Hondt和Wolfgang De Meuter.环境参考:寻址移动网络中的对象.[...]第986-997页.ACM,2006年10月.

这是阿卡做的吗?如果没有,考虑到Akka今天存在的事实,你认为它仍然与研究这个领域有关吗?

scala actor akka

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

Scala map方法语法

以下代码来自http://www.scalaclass.com/book/export/html/1来做矩阵点积.

我无法理解大括号之间的语法.

  • 为什么使用大括号,而不是常规方法括号?
  • 这是匿名方法吗?
  • 什么是._1和._2?

谢谢.

type Row    = List[Double]
type Matrix = List[Row]

def dotProd(v1:Row, v2:Row) = 
    v1.zip(v2).map{ t:(Double, Double) => t._1 * t._2 }.reduceLeft(_ + _)
Run Code Online (Sandbox Code Playgroud)

syntax scala

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

Scala集合,单键多值

我有一个父键列表,每个父键可能有零个或多个关联值.我不确定要使用哪个集合.

我在用 Map[Int,List[String]]

我宣布地图为

var nodes = new HashMap[Int, List[String]]
Run Code Online (Sandbox Code Playgroud)

然后我有两种方法来处理添加新元素.第一种是添加新密钥addNode,第二种是添加新值addValue.最初,密钥不会有任何与之关联的值.稍后,在执行期间,将关联新值.

def addNode(key: Int) = nodes += (key -> "")

def addValue(key: Int, value: String) = ???
Run Code Online (Sandbox Code Playgroud)

我不确定如何实施 addValues

更新:

为了回应@ oxbow-lakes的回答,这是我收到的错误.请注意,密钥不需要具有与之关联的值.

scala> var nodes = Map.empty[Int, List[String]]
nodes: scala.collection.immutable.Map[Int,List[String]] = Map()

scala> nodes += (1->null)

scala> nodes += (1 -> ("one" :: (nodes get 1 getOrElse Nil)))
java.lang.NullPointerException
    at .<init>(<console>:9)
    at .<clinit>(<console>)
    at .<init>(<console>:11)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) …
Run Code Online (Sandbox Code Playgroud)

collections scala map

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

如何在IntelliJ IDEA中设置Spark应用程序的日志记录级别?

我正在通过SBT创建IntelliJ中的Scala项目.该项目将Spark作为其依赖项之一.我还处于开发阶段,所以一切都在我的本地机器上运行.

例如,如何更改日志级别等Spark配置?

scala intellij-idea apache-spark

8
推荐指数
2
解决办法
7350
查看次数

图书馆与语言扩展

图书馆和语言扩展有什么区别?特别是在Scala中.

programming-languages scala

5
推荐指数
2
解决办法
461
查看次数

Scala列表索引

有人可以解释为什么需要明确的呼叫apply()map()

scala> val l = List(1, 2, 3)
l: List[Int] = List(1, 2, 3)

scala> l(2)
res56: Int = 3

scala> l.map(x => x*2)
res57: List[Int] = List(2, 4, 6)

scala> l.map(x => x*2)(2)
<console>:9: error: type mismatch;
 found   : Int(2)
 required: scala.collection.generic.CanBuildFrom[List[Int],Int,?]
              l.map(x => x*2)(2)
                              ^

scala> l.map(x => x*2).apply(2)
res59: Int = 6
Run Code Online (Sandbox Code Playgroud)

谢谢.

collections scala

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

Java线程压力测试

我试图对我可以在单个JVM上运行的最大并发线程数以及创建大量线程所需的时间进行小测试.我有以下简单的代码

public class Threading {

  public static void main(String[] args) {
    Runnable task = new Runnable() {
        @Override
        public void run() {
            for (int i = 0; i < 100000; i++)
                ;
        }
    };

    long start = System.nanoTime();
    int runs = 1000000;
    for (int i = 0; i < runs; i++)
        new Thread(task).start();

    long time = System.nanoTime() - start;
     System.out.printf("Time for task to complete: %.2f seconds", (double) time / 1000000000.0);
 }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用VisualVM来跟踪活动线程的数量.

我得到的结果似乎很奇怪.我达到的峰值活动线程大约为100,活动线程的平均数量大约为15,并且创建100万个线程需要60多秒.

VisualVM截图

我在这里做错了吗?

java concurrency multithreading

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

从 WinForm 中删除动态添加的控件

我有一个 GroupBox,我可以在其中动态添加控件。我添加的控件有两种类型DevExpress.XtraEditors.TextEditWindows.Forms.Label 我正在尝试使用以下方法删除这些控件

foreach (Control control in salesBox.Controls)
{
  control.Dispose(); 
  salesBox.Controls.Remove(control);
} 
Run Code Online (Sandbox Code Playgroud)

这是正确删除TextEdit控件但不是Label控件。循环不遍历Label控件。

.net c# winforms

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

Xcode 4.5问题与简单的OpenGL C++代码

我在Xcode中有一个简单的OpenGL项目.

升级到4.5后,Xcode开始以一种奇怪的方式运行

在以下行中

#include <fstream.h>
Run Code Online (Sandbox Code Playgroud)

编译失败,出现以下错误消息:未找到词法或预处理器问题'fstream.h'文件.

用于在Xcode 4.2中成功编译的相同代码

将线路更改为

#include <c++/4.2.1/backward/fstream.h>
Run Code Online (Sandbox Code Playgroud)

修复了问题,但生成了其他一些编译错误.

c++ opengl xcode

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

Scala中的Akka actor教程用于Java中的多线程

我试图将Scala的入门Akka教程转换为Java并用线程替换actor.

可以在http://typesafe.com/resources/tutorials/getting-started-with-akka-scala.html找到该教程.

可以从Typesafe giter8模板存储库中检出原始的Pi.scala文件

g8 typesafehub/akka-first-tutorial-scala

我想知道我所做的是否正确.

这是我的Pi.java

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.*;

public class Pi {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Listener listener = new Listener();

        //calculate(nrOfWorkers = 10, nrOfElements = 10000, nrOfMessages = 10000)
        Master master = new Master(4, 1000, 1000, listener);
        master.calculate();
    }
}

class Worker implements Callable<Double> {

    private int start;
    private int nrOfElements;

    public Worker(int start, int nrOfElements) {
        this.start = …
Run Code Online (Sandbox Code Playgroud)

java scala actor akka

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

使用Enumerable.Where键入错误

我正在开发一个从网站上检索一些数据的项目.为了完成这项工作,我决定使用HtmlAgilityPack.

一切正常,除了我面临的与lambda表达式相关的问题.我收到的错误是

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'bool'

var page = RetrievePage(url); //retrieve page
var document = GetDocument(page); //get the document
var optionNodes = document.Result.DocumentNode.SelectNodes("???"); //Select nodes based on selector

//remove empty lines
var filteredNodes = optionNodes[0].ChildNodes.Where(n => n.InnerText.Trim() != string.Empty);

using (var nodes = filteredNodes.GetEnumerator())
{
   while (nodes.MoveNext())
   {
      //error
      var children = nodes.Current.ChildNodes.Where(c => c.Attributes.Where(t => t.Value == "???"));
   }
}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

c# lambda html-agility-pack

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