Python 为什么我会看到多个spark安装目录?
我正在一台ubuntu服务器上工作,它安装了Python 为什么我会看到多个spark安装目录?,python,scala,apache-spark,pyspark,apache-spark-sql,Python,Scala,Apache Spark,Pyspark,Apache Spark Sql,我正在一台ubuntu服务器上工作,它安装了spark 我没有此服务器的sudo访问权限 因此,在我的目录下,我创建了一个新的虚拟环境,在那里我安装了pyspark 当我键入以下命令时 whereis spark-shell #see below /opt/spark-2.4.4-bin-hadoop2.7/bin/spark-shell2.cmd /opt/spark-2.4.4-bin-hadoop2.7/bin/spark-shell.cmd /opt/spark-2.4.4-bi
spark
我没有此服务器的sudo访问权限
因此,在我的目录下,我创建了一个新的虚拟环境
,在那里我安装了pyspark
当我键入以下命令时
whereis spark-shell #see below
/opt/spark-2.4.4-bin-hadoop2.7/bin/spark-shell2.cmd /opt/spark-2.4.4-bin-hadoop2.7/bin/spark-shell.cmd /opt/spark-2.4.4-bin-hadoop2.7/bin/spark-shell /home/abcd/.pyenv/shims/spark-shell2.cmd /home/abcd/.pyenv/shims/spark-shell.cmd /home/abcd/.pyenv/shims/spark-shell
另一个命令
echo 'sc.getConf.get("spark.home")' | spark-shell
scala> sc.getConf.get("spark.home")
res0: String = /home/abcd/.pyenv/versions/bio/lib/python3.7/site-packages/pyspark
q1)我是否使用正确的命令查找spark的安装目录
q2)可以帮助我理解为什么我会看到3个opt路径
和3个pyenv路径
spark安装(就像您在/opt/spark-2.4.4-bin-hadoop2.7
中看到的那样)通常都带有pyspark安装。您可以通过下载并提取这个tarball()来检查这一点
如果您在虚拟环境中安装了pyspark
,则您正在安装另一个pyspark
实例,该实例没有Scala源代码,但附带编译后的spark代码作为JAR(请参阅pyspark安装中的jars
文件夹)pyspark
是spark上的包装器(用Scala编写)。这可能就是您在/home/abcd/.pyenv/shimmes/
中看到的
同一目录中的脚本spark-shell 2.cmd
和spark-shell.cmd
是同一spark安装的一部分。这些是文本文件,您可以cat
。您将看到spark-shell.cmd
在其中调用spark-shell 2.cmd
。您的/opt/spark-2.4.4-bin-hadoop2.7/bin/
文件夹中可能会有更多的脚本,所有这些脚本都是相同spark安装的一部分。文件夹/home/abcd/.pyenv/shimmes/
也是如此。最后,/home/abcd/.pyenv/versions/bio/lib/python3.7/site packages/pyspark
似乎是另一个pyspark
安装
使用哪个pyspark
安装不重要。为了使用spark,需要创建一个运行Scala/java代码的java进程(来自安装中的JAR)
通常,当您运行这样的命令时
#Python代码
spark=SparkSession.builder.appName('myappname').getOrCreate()
然后创建一个运行spark的新java进程
如果运行脚本/opt/spark-2.4.4-bin-hadoop2.7/bin/pyspark
,则还将创建一个新的java进程
您可以使用以下内容检查是否确实存在这样的java进程:
ps aux | grep“java”
一个简单的问题。当我在/opt/
目录中安装spark时,为什么我的第一个命令输出也会显示虚拟环境spark-shell2.cmd
,spark-shell2
,spark-shell2
?是的,我在虚拟环境中安装了pyspark
,但我不应该只看到这个/home/abcd/.pyenv/versions/bio/lib/python3.7/site packages/pyspark
?但是为什么spark sheel.cmd2
etc第一个命令和第二个命令之间有什么区别?为什么第二个命令只给出pyspark
安装路径?能帮我一下吗?sparkshell在哪里
只是在您的磁盘上搜索与模式匹配的所有文件sparkshell
。这与搜索文件/文件夹名没有什么不同,比如说,音乐文件夹
sc.getConf.get(“spark.home”)
显示了用于在python程序中创建spark会话的特定spark安装。嗨,Ankur,我有另一篇相关文章。如果你有时间,你能帮我吗?