【问题标题】:Spark : Error Not found value SCSpark:错误未找到值SC
【发布时间】:2015-11-16 10:31:38
【问题描述】:

我刚刚开始使用 Spark。我已经用 Spark 安装了 CDH5。但是,当我尝试使用 sparkcontext 时,它会给出如下错误

<console>:17: error: not found: value sc
       val distdata = sc.parallelize(data)

我对此进行了研究,发现error: not found: value sc

并尝试使用 ./spark-shell 启动 spark 上下文。它给出了错误No such File or Directory

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    如果您在其确切目录中,则可以以./ 开头,或者如果您在其他地方,则可以以path/to/spark-shell 开头。

    另外,如果您使用spark-submit 运行脚本,则需要先将sc 初始化为SparkContext

    import org.apache.spark.SparkContext
    import org.apache.spark.SparkConf
    
    val conf = new SparkConf().setAppName("Simple Application")
    val sc = new SparkContext(conf)
    

    【讨论】:

    • 谢谢。我已经完全重复了所有这些步骤。它仍然给出同样的错误。
    • 您确定您提供的spark-shell 路径正确吗?默认情况下它不在您的系统中/bin,您必须像/path/to/spark-shell一样执行它
    • 这就是我正在做的。 val data = Array(1, 2, 3, 4, 5) val distData = sc.parallelize(data).另外我怎样才能找到火花壳的路径?
    • 您是成功启动了spark-shell 还是刚刚使用了scala 编译器?
    • 是的,我已经按照您之前的建议通过发出“spark-shell”成功启动了 spark shell。
    【解决方案2】:

    还有另一个 stackoverflow 帖子通过从 spark 会话中获取 sc(spark context) 来回答这个问题。我是这样做的:

    val spark = SparkSession.builder().appName("app_name").enableHiveSupport().getOrCreate()

    val sc = spark.sparkContext

    这里的原始答案: Retrieve SparkContext from SparkSession

    【讨论】:

      【解决方案3】:

      将 spark 目录添加到路径,然后您可以在任何地方使用 spark-shell。

      如果您在 spark-submit 作业中使用 import org.apache.spark.SparkContext 来创建 spark 上下文,请添加:

      val sc = new SparkContext(conf)
      

      已经定义了 conf。

      【讨论】:

        【解决方案4】:

        启动一个新终端可以解决我的问题。

        【讨论】:

          【解决方案5】:

          您需要先运行 Hadoop 守护程序(运行此命令“start-all.sh”)。那就试试吧

          【讨论】:

            猜你喜欢
            • 2014-10-01
            • 1970-01-01
            • 2016-08-16
            • 2021-10-25
            • 1970-01-01
            • 1970-01-01
            • 2017-01-28
            • 1970-01-01
            • 2015-08-26
            相关资源
            最近更新 更多