【问题标题】:How to create emptyRDD using SparkSession - (since hivecontext got deprecated)如何使用 SparkSession 创建 emptyRDD -(因为不推荐使用 hivecontext)
【发布时间】:2018-07-30 08:41:52
【问题描述】:

在 Spark 版本 1.*

创建如下 emptyRDD:

var baseDF = hiveContextVar.createDataFrame(sc.emptyRDD[Row], baseSchema)

迁移到 Spark 2.0 时(由于 hiveContext 已被弃用,使用 sparkSession)

试过了:

var baseDF = sparkSession.createDataFrame(sc.emptyRDD[Row], baseSchema)

虽然出现以下错误:

org.apache.spark.SparkException: 只有一个 SparkContext 可能正在运行 在这个 JVM 中(参见 SPARK-2243)

有没有办法使用 sparkSession 创建 emptyRDD?

【问题讨论】:

  • 这不是导致错误的原因。您的代码中的其他内容是!
  • 您似乎尝试使用两个 spark 上下文(sparkSession 和 sc),这就是您收到错误的原因。
  • 确实@Shaido OP 陷入了惰性计算陷阱,但目前发布的代码不会导致给出的错误。

标签: apache-spark rdd apache-spark-2.2


【解决方案1】:

在 Spark 2.0 中,您需要通过 spark 会话引用 spark 上下文。您可以如下创建空数据框。它对我有用。

sparkSession.createDataFrame(sparkSession.sparkContext.emptyRDD[Row], baseSchema)

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多