我写了以下内容:
val a = 1 to 10000
val b = sc.parallelize(a)
并显示错误说:
<console>:12: error: not found: value sc
任何帮助?
答案 0 :(得分:3)
在我的情况下,我在本地Windows系统上安装了spark,我观察到同样的错误,但这是因为下面的问题
问题:引起:java.lang.RuntimeException: HDFS上的root scratch目录:/ tmp / hive应该是可写的。
这是因为权限问题。我通过使用以下命令更改权限解决了这个问题。尽管日志说明了&#34;在hdfs&#34;这是在Windows系统上
E:\ winutils \ bin \ winutils.exe chmod 777 E:\ tmp \ hive
答案 1 :(得分:2)
当您的类路径不正确时会发生这种情况。目前这是Spark中的open issue。
> spark-shell
...
...
14/08/08 18:41:50 INFO SparkILoop: Created spark context..
Spark context available as sc.
scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@2c1c5c2e
scala> :cp /tmp
Added '/tmp'. Your new classpath is:
...
scala> sc
<console>:8: error: not found: value sc
您可能需要从repl外部更正类路径。
答案 2 :(得分:1)
您收到此错误,因为未定义sc
。我会尝试:
sc = SparkContext(appName = "foo")
通常发生在我身上的另一件事是没有在集群中获得Kerberos票证,因为我也忘记了。
至于Spark中的&#34;开放问题&#34; Solnanki提到,我很确定这不再是 了。
答案 3 :(得分:1)
首先检查spark-shell命令运行后的日志文件 是否将SparkContext初始化为sc。 如果没有正确初始化SparkContext
您必须在spark环境中设置IP地址。
在 conf / spark.env.sh 中打开env文件并添加以下行
导出SPARK_LOCAL_IP =&#34; 127.0.0.1&#34;
答案 4 :(得分:0)
我在Cloudera Quickstart VM上尝试使用Spark时遇到此错误。原来是/user/spark
上的hdfs文件权限问题。
我无法切换到用户“spark”,我得到了一个用户不可用的错误。 使用以下命令更改文件权限可以解决它。
sudo -u hdfs hadoop fs -chmod -R 1777 /user/spark
scala> val data = 1 to 10000
data: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170...
scala> val distData = sc.parallelize(data)
distData: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:14
答案 5 :(得分:0)
我遇到了同样的问题。在我的情况下,JAVA_HOME未正确设置导致此问题。令人惊讶的是SPARK会启动,但sc上下文在创建实例时遇到了问题。当我修复JAVA_HOME指向正确的java目录时,此问题已得到解决。我必须关闭会话并重新打开一个新会话,以确保更新路径并打开新会话。
我希望这会有所帮助。
答案 6 :(得分:0)
如this thread中所述,一种解决方案可能是关闭权限检查。
在cloudera manager中,转到高级下的hdfs配置,并将以下代码放入&#34; HDDS服务高级配置代码段(安全阀)中,用于hdfs-site.xml&#34; :
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
之后,需要重启HDFS组件。
它对我有用。但是,它可能不适合生产环境。