我用pip安装了pyspark。我在jupyter笔记本中编码。一切正常,但我在导出大型时遇到
。同样在spark文档中,它说java
堆空间错误。csv文件。这里有人建议编辑spark默认值。配置
注意:在客户端模式下,不能直接在应用程序中通过SparkConf设置此配置,因为此时驱动程序JVM已经启动。请通过--driver memory命令行选项或在默认属性文件中设置此配置
但是用pip
安装pyspark
时恐怕没有这样的文件。我对吗?我该如何解决这个问题?
谢啦!
火花默认值。当我们必须更改spark的任何默认配置时,都需要配置文件。
正如@niuer所建议的,它应该出现在$SPARK\u HOME/conf/code>目录中。但你可能不是这样。默认情况下,那里将存在模板配置文件。您只需添加一个新的火花默认值即可。conf文件位于$SPARK\U HOME/conf中。
火花默认值。conf文件应位于:
$SPARK_HOME/conf
如果没有文件,请创建一个(模板应位于同一目录中)。
如何找到默认配置文件夹
在Python中检查文件夹的内容:
import glob, os
glob.glob(os.path.join(os.environ["SPARK_HOME"], "conf", "spark*"))
# ['/usr/local/spark-3.1.2-bin-hadoop3.2/conf/spark-env.sh.template',
# '/usr/local/spark-3.1.2-bin-hadoop3.2/conf/spark-defaults.conf.template']
当否时,默认设置为spark。conf文件可用,使用内置值
令我惊讶的是,没有火花默认值。conf,但只存在一个模板文件!
我仍然可以在Web UI的“环境”选项卡中查看Spark属性://
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("myApp") \
.getOrCreate()
spark.sparkContext.getConf().getAll()
# [('spark.driver.port', '55128'),
# ('spark.app.name', 'myApp'),
# ('spark.rdd.compress', 'True'),
# ('spark.sql.warehouse.dir', 'file:/path/spark-warehouse'),
# ('spark.serializer.objectStreamReset', '100'),
# ('spark.master', 'local[*]'),
# ('spark.submit.pyFiles', ''),
# ('spark.app.startTime', '1645484409629'),
# ('spark.executor.id', 'driver'),
# ('spark.submit.deployMode', 'client'),
# ('spark.app.id', 'local-1645484410352'),
# ('spark.ui.showConsoleProgress', 'true'),
# ('spark.driver.host', 'xxx.xxx.xxx.xxx')]
请注意,未列出所有属性,但:
只有通过spark-defaults.conf、SparkConf或命令行显式指定的值。对于所有其他配置属性,您可以假设使用了默认值。
例如,在我的例子中,默认的并行性是:
spark._sc.defaultParallelism
8
这是本地模式的默认值,即本地机器上的内核数——参见https://spark.apache.org/docs/latest/configuration.html.在我的例子中,由于超线程,8=2x4core。
如果传递了属性spark。违约启动应用程序时的并行性
spark = SparkSession \
.builder \
.appName("Set parallelism") \
.config("spark.default.parallelism", 4) \
.getOrCreate()
然后,该属性将显示在Web UI和列表中
spark.sparkContext.getConf().getAll()
配置设置的优先级
Spark将按以下顺序考虑给定的属性(Spark defaults.conf排在最后):
从…起https://spark.apache.org/docs/latest/configuration.html#dynamically-加载spark属性:
直接在SparkConf上设置的属性具有最高的优先级,然后是传递给spark submit或spark shell的标志,然后是spark默认值中的选项。conf文件。自早期版本的Spark以来,一些配置密钥已被重命名;在这种情况下,旧的密钥名称仍然可以接受,但其优先级低于新密钥的任何实例。
请注意,一些pyspark Jupyter内核在环境变量$pyspark\u submit\u ARGS中包含spark submit的标志,因此可能也需要检查这一点。
相关问题:在何处修改spark默认值。conf如果我通过pip安装pyspark安装pyspark
我最近也遇到了这个问题。如果查看类路径条目下的Spark UI,第一个路径可能是配置目录,类似于/lib/python3。7/site-packages/pyspark/conf/。当我查找那个目录时,它不存在;大概这不是pip安装的一部分。但是,您可以轻松地创建它并添加自己的配置文件。例如
mkdir /.../lib/python3.7/site-packages/pyspark/conf
vi /.../lib/python3.7/site-packages/pyspark/conf/spark-defaults.conf
安装节点模块时,我忘记添加的次数太多了。默认情况下是否有附加此选项的方法?这样每当我键入
问题内容: 我正在尝试使用pip安装Pandas,但遇到了一些麻烦。我刚运行成功下载了熊猫。但是,它没有下载到我想要的位置。这是我使用时看到的内容: 这样就安装好了。但是当我创建一个新的Python项目并在下面搜索熊猫时,我感到很困惑,因为它没有出现。但是,我过去下载的其他一些软件包的确出现了,所以我尝试看看它们在哪里。运行(我可以毫无问题地导入)产生: 这是在完全不同的目录中。为了确认我的错误,
我正在尝试使用pip安装Pandas,但遇到了一些问题。我刚刚运行了,成功下载了pandas。但是,它没有下载到我想要的位置。以下是我使用时看到的内容: 所以它被安装了。但是当我创建一个新的Python项目并在System Libs/lib/python下搜索熊猫时,我感到困惑,因为它没有显示出来。然而,我过去下载的其他一些包确实出现了,所以我试着看看它们在哪里。运行(我可以毫无问题地导入)生成:
我有一个使用许多Python库的项目,我想与我的朋友和许多其他人分享这个项目。但是,我不知道他们的计算机是否会在他们的计算机上安装这些包。所以我想制作一个requirements.txt文件。当运行时,它将自动安装未安装的包。 我想把那些根本没有安装的软件包的名字放进去,比如Kivy、Matplotlib、Numpy。一些默认安装的软件包是随机的等等,所以我不想把这些名字放在需求中。txt文件。
编辑1 当选择正确的scala版本时,它似乎会更进一步,但我不确定下面的输出是否仍然有需要解决的错误:
我最近开始探索Scala,并开始在我的Eclipse(Indigo)副本中安装Scala IDE。我最初为Scala 2.9安装了Scala IDE,但后来注意到有一个更新的版本可用于Scala 2.10。在旧插件上安装新插件似乎已经奏效,但是... Scala 2.10已经弃用了较旧的Scala演员,取而代之的是Akka演员。因此,我试图向我的玩具Scala项目添加一个导入: IDE中会标记此错