*所有* Spark属性键的列表在哪里?



所有(有效的内置(Spark属性的列表在哪里?

官方 Spark 文档中的可用属性列表不包括当前稳定版 Spark(截至 2020-01-22 的 2.4.4(的所有(有效的内置(属性。 一个例子是spark.sql.shuffle.partitions,它默认为200。 不幸的是,像这样的属性似乎无法通过sparkConf.getAll()sparkConf.toDebugString()sql.("SET -v")中的任何一个访问。 相反,内置默认值似乎只能通过显式名称(即sparkConf.get("foo")(。 但是,这对我没有帮助,因为确切的属性名称必须已经知道,并且我需要调查我还不知道的属性以进行调试/优化/支持。

你可以使用。

sql("SET -v"(.show(500,false(

这将为您提供一个近乎完整的列表,不包括内部属性。

+-----------------------------------------------------------------+-------------------------------------------------+
|key                                                              |value                                            |
+-----------------------------------------------------------------+-------------------------------------------------+
|spark.sql.adaptive.enabled                                       |false                                            |
|spark.sql.adaptive.shuffle.targetPostShuffleInputSize            |67108864b                                        |
|spark.sql.autoBroadcastJoinThreshold                             |10485760                                         |
|spark.sql.avro.compression.codec                                 |snappy                                           |
|spark.sql.avro.deflate.level                                     |-1                                               |
...

编辑:

我会提到 Spark 有许多烘焙的默认值,这些默认值可能不会显示为配置属性。 我建议看看源代码中的SQLConf类。 不幸的是,由于 Spark 的复杂性及其几乎无数的配置,并非所有配置都在 SQLConf 中,有些配置分散在整个代码中。 最近,有时 Spark 经常有多个相互覆盖的配置,这也只能通过源代码推断出来。

https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala

我不认为这是完整的答案,但它可以提供帮助。它将显示比您的替代方案更多的属性。至少会显示由某种中间件修改的选项,例如 Livy。

设置此参数:

spark.logConf=true

现在,您的所有会话配置都将保存在 INFO 级别的纱线日志中。执行yarn logs -applicattionID <your app id>并搜索spark.app.name=以查找会话属性。

另一个问题是您将在执行作业后立即看到属性值。

最新更新