小编Har*_*ebe的帖子

list.filter(!=) 编译,但没有按预期工作

以下 Scala 代码可以编译,但没有按照我的预期执行:

scala> List((1,1),(1,2)).filter(!=)
res1: List[(Int, Int)] = List((1,1), (1,2))
Run Code Online (Sandbox Code Playgroud)

!=上面的代码指的是什么?

我知道我可以正确地将谓词写为

scala> List((1,1),(1,2)).filter { case (a, b) => a != b }
res1: List[(Int, Int)] = List((1,2))
Run Code Online (Sandbox Code Playgroud)

但我很好奇第一个表达式实际上做了什么。

scala

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

Spark Scala Jaas 配置

我正在使用 Kafka jars 在 scala shell 上执行 spark 代码,我的目的是从 Kafka 主题流式传输消息。我的 spark 对象已创建,但任何人都可以帮助我如何在启动 spark shell 时传递 jaas 配置文件?我的错误指出我缺少 jaas 配置

scala jaas apache-kafka apache-spark

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

Spark:DataFrame如何在groupBy结果上使用Sum

基于以下数据帧:

+---+-----+----+
| ID|Categ|Amnt|
+---+-----+----+
|  1|    A|  10|
|  1|    A|   5|
|  2|    A|  56|
|  2|    B|  13|
+---+-----+----+
Run Code Online (Sandbox Code Playgroud)

我想获得ID和分类列Amnt group的总和.

+---+-----+-----+
| ID|Categ|Count|
+---+-----+-----+
|  1|    A|  15 |
|  2|    A|  56 |
|  2|    B|  13 |
+---+-----+-----+
Run Code Online (Sandbox Code Playgroud)

在SQL中,我会做类似的事情

SELECT ID,
       Categ, 
       SUM (Count) 
FROM Table 
GROUP BY ID,
         Categ;
Run Code Online (Sandbox Code Playgroud)

但是如何在Scala中执行此操作?我试过了

DF.groupBy($"ID", $"Categ").sum("Count")
Run Code Online (Sandbox Code Playgroud)

但这只是改变了Count列名,sum(count)而不是实际给出了计数的总和.

谢谢

scala apache-spark spark-dataframe

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

字符串连接和比较在println语句中给出了意外的结果

我无法弄清楚以下行为,

String str1= "abc";
String str2 = "abc";

System.out.println("str1==str2 "+ str1==str2);
System.out.println("str1==str2 " + (str1==str2))
Run Code Online (Sandbox Code Playgroud)

上述声明的输出如下:

str1 == str2 true

为什么会这样?为什么输出不是如下:

str1 == str2 true

str1 == str2 true

java string operator-precedence

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