【问题标题】:Diffrence between extends from App and object contain main method in scala来自App的扩展和对象之间的差异包含scala中的主要方法
【发布时间】:2018-07-17 17:47:54
【问题描述】:

我编写了示例 spark-scala 程序,用于从数据帧创建 json 元素列表。当我使用 main 方法执行时,它返回空列表,但是当我在没有扩展应用程序的对象的情况下执行时,它返回包含记录的列表。 scala对象中extends App和main方法有什么区别

object DfToMap {
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession.builder()
.appName("Rnd")
.master("local[*]")
.getOrCreate()
import spark.implicits._

val df = Seq(
(8, "bat"),
(64, "mouse"),
(27, "horse")
).toDF("number", "word")

val json = df.toJSON
val jsonArray = new util.ArrayList[String]()
json.foreach(f => jsonArray.add(f))
print(jsonArray)
}
}

它将返回空列表 但是下面的程序给了我记录列表

object DfToMap extends App{
val spark: SparkSession = SparkSession.builder()
.appName("Rnd")
.master("local[*]")
.getOrCreate()
import spark.implicits._

val df = Seq(
(8, "bat"),
(64, "mouse"),
(27, "horse")
).toDF("number", "word")

val json = df.toJSON
val jsonArray = new util.ArrayList[String]()
json.foreach(f => jsonArray.add(f))
print(jsonArray)

}

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    TL;DR 两个 sn-ps 都不是正确的 Spark 程序,但一个比另一个更不正确。

    您犯了两个错误,都在介绍性 Spark 材料中进行了解释。

    【讨论】:

    • 感谢 user10095367 。我试图理解为什么 spark 的行为会发生变化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多