以下 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)
但我很好奇第一个表达式实际上做了什么。
我正在使用 Kafka jars 在 scala shell 上执行 spark 代码,我的目的是从 Kafka 主题流式传输消息。我的 spark 对象已创建,但任何人都可以帮助我如何在启动 spark shell 时传递 jaas 配置文件?我的错误指出我缺少 jaas 配置
基于以下数据帧:
+---+-----+----+
| 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)而不是实际给出了计数的总和.
谢谢
我无法弄清楚以下行为,
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