我们看到了,
Spark context available as 'sc'.
Spark session available as 'spark'.
Run Code Online (Sandbox Code Playgroud)
我读过spark会话包括spark上下文,流上下文,hive上下文...如果是这样,那么为什么我们不能通过使用spark会话而不是spark上下文来创建rdd.
scala> val a = sc.textFile("Sample.txt")
17/02/17 16:16:14 WARN util.SizeEstimator: Failed to check whether UseCompressedOops is set; assuming yes
a: org.apache.spark.rdd.RDD[String] = Sample.txt MapPartitionsRDD[1] at textFile at <console>:24
scala> val a = spark.textFile("Sample.txt")
<console>:23: error: value textFile is not a member of org.apache.spark.sql.SparkSession
val a = spark.textFile("Sample.txt")
Run Code Online (Sandbox Code Playgroud)
如上所示,sc.textFile成功创建了RDD但没有spark.textFile.
我了解 scala 如何通过考虑所提到的特征的顺序来解决钻石继承情况。我很好奇它如何解决字段的相同问题。这就是我想要理解的 -
class A {print("A")}
trait B extends A {print("B") ; val x="b"}
trait C extends B {print("C")}
trait D extends A {print("D"); val x="d"}
object TraitsEx extends App {
var d = new A with B with D
println(d.x)
}
Run Code Online (Sandbox Code Playgroud)
上面的代码无法编译。
在scala REPL中,当我给出"H".toInt时,我得到NumberFormatException.但是,同样的事情是在for循环中工作 - 对于(e < - "Hello")println(e.toInt)我想了解它在for循环中的工作原理,但不是在外部.
请帮助我理解在数据集上使用时传递给groupByKey的参数
scala> val data = spark.read.text("Sample.txt").as[String]
data: org.apache.spark.sql.Dataset[String] = [value: string]
scala> data.flatMap(_.split(" ")).groupByKey(l=>l).count.show
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,请帮助我理解groupByKey(l => l)中的(l => l)含义.