当前位置: 首页 > 知识库问答 >
问题:

是否存在火花默认值。与pip一起安装pyspark时的conf

谷梁浩思
2023-03-14

我用pip安装了pyspark。我在jupyter笔记本中编码。一切正常,但我在导出大型时遇到java堆空间错误。csv文件。这里有人建议编辑spark默认值。配置。同样在spark文档中,它说

注意:在客户端模式下,不能直接在应用程序中通过SparkConf设置此配置,因为此时驱动程序JVM已经启动。请通过--driver memory命令行选项或在默认属性文件中设置此配置

但是用pip安装pyspark时恐怕没有这样的文件。我对吗?我该如何解决这个问题?

谢啦!

共有3个答案

湛鸿
2023-03-14

火花默认值。当我们必须更改spark的任何默认配置时,都需要配置文件。

正如@niuer所建议的,它应该出现在$SPARK\u HOME/conf/code>目录中。但你可能不是这样。默认情况下,那里将存在模板配置文件。您只需添加一个新的火花默认值即可。conf文件位于$SPARK\U HOME/conf中。

高修筠
2023-03-14

火花默认值。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排在最后):

  1. SparkConf
  2. 传递给spark submit的标志
  3. <代码>spark默认值。形态

从…起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

尹承泽
2023-03-14

我最近也遇到了这个问题。如果查看类路径条目下的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中会标记此错