我使用Spark 2.1.0。
当我运行spark-shell
时,遇到此错误:
<console>:14: error: not found: value spark
import spark.implicits._
^
<console>:14: error: not found: value spark
import spark.sql
^
可能是什么原因?如何解决?
答案 0 :(得分:8)
我遇到了同样的问题,经过调查我发现 {{>> spark version 与 winutils.exe 之间存在兼容性问题{3}} 强>
经过实验,我建议您使用 hadoop-2.7.1 winutils.exe 与 spark-2.2.0-bin-hadoop2.7 版本和 hadoop带有 spark-1.6.0-bin-hadoop2.6 版本的-2.6.0 winutils.exe 并设置如下环境变量
SCALA_HOME : C:\Program Files (x86)\scala2.11.7;
JAVA_HOME : C:\Program Files\Java\jdk1.8.0_51
HADOOP_HOME : C:\Hadoop\winutils-master\hadoop-2.7.1
SPARK_HOME : C:\Hadoop\spark-2.2.0-bin-hadoop2.7
PATH : %JAVA_HOME%\bin;%SCALA_HOME%\bin;%HADOOP_HOME%\bin;%SPARK_HOME%\bin;
创建 C:\ tmp \ hive diroctory并使用以下命令授予访问权限
C:\Hadoop\winutils-master\hadoop-2.7.1\bin>winutils.exe chmod -R 777 C:\tmp\hive
从计算机中删除本地基于Derby的Metastore metastore_db 目录(如果存在)。
C:\Users\<User_Name>\metastore_db
使用以下命令启动spark shell
C:>spark-shell
答案 1 :(得分:2)
错误的原因是由于某些早期问题(由于您在Windows上并且尚未安装可能)而无法创建实例winutils.exe
二进制或其他会话保留本地基于Derby的Metastore。)
建议您向上滚动并查看找到根本原因的整个日志屏幕。
答案 2 :(得分:1)
如果你在Cloudera,这张github票的解决方案对我有用(https://github.com/cloudera/clusterdock/issues/30):
root用户(在启动spark-shell时运行的用户)在HDFS中没有用户目录。如果你创建一个(sudo -u hdfs hdfs dfs -mkdir / user / root后跟sudo -u hdfs dfs -chown root:root / user / root),这应该是固定的。
即。为运行spark-shell的用户创建一个HDFS用户主目录。
答案 3 :(得分:1)
给“chmod 777”基本上允许此文件夹激活访问权限
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
#'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
以下是完整的命令: -
C:\tmp\hive
http://mytechnologythought.blogspot.com/2017/10/fixed-spark-setup-error-not-found-spark.html
答案 4 :(得分:0)
对于Ubuntu
用户
我有完全相同的错误,我按照以下方式修复它。
如果您从终端 关闭并重新打开终端 ,然后 重新启动 spark-shell 火花壳 。
答案 5 :(得分:0)
我有同样的错误。就我而言,硬盘几乎快满了。我从磁盘上删除了一些大文件,然后在重新启动后再次运行。有效!但是我认为并非总是如此。