我正在使用带有Spark 2.0.0的“预览”Google DataProc Image 1.1。要完成我的一个操作,我必须完成一个笛卡尔乘积。从版本 2.0.0 开始,创建了一个禁止笛卡尔产品的 Spark 配置参数 (spark.sql.cross Join.enabled) 并抛出异常。如何设置 spark.sql.crossJoin.enabled=true,最好使用初始化操作?spark.sql.crossJoin.enabled=true
TPCDS查询集基准具有包含CROSS JOINS
的查询,除非您显式地编写CROSS JOIN
或动态地将Spark的默认属性设置为trueSpark.conf.set("spark.sql.crossJoin.enabled", true)
,否则您将遇到异常错误。
该错误出现在 TPCDS 查询 28、61、88 和 90 上,因为事务处理委员会 (TPC) 的原始查询语法包含逗号,并且 Spark 的默认联接操作是内部联接。我的团队还决定使用 CROSS JOIN
来代替更改 Spark 的默认属性。
要更改 Dataproc 中配置设置的默认值,您甚至不需要 init 操作,您可以在从命令行创建集群时使用 --properties 标志:
gcloud dataproc clusters create --properties spark:spark.sql.crossJoin.enabled=true my-cluster ...
火花
spark.sql.crossJoin.enable
默认为true(SPARK-28621)。
火花
您可以使用交叉联接
:
df1.crossJoin(df2)
它使您的意图明确,并保持更保守的配置,以防止意外的交叉连接。
火花2.0
SQL属性可以在运行时使用RuntimeConfig.set
方法动态设置,因此您应该能够调用
spark.conf.set("spark.sql.crossJoin.enabled", true)
只要您想显式允许笛卡尔积。
在Spark2.1文档中提到 如何解释这些(冲突?)一些信息?
当我运行pyspark program interactive shell时,可以获取pyspark脚本中的配置文件(config.ini),但当我试图使用Spark submit命令和主纱运行相同的脚本时,并且集群部署模式是集群,因为配置文件不存在,所以它给了我错误,我检查了纱日志,可以看到相同的,下面是运行pyspark作业的命令。
我们正试图用普罗米修斯来获取火花指标。我们使用jmx导出器jmx_prometheus_javaagent-0.12.0.jar。 ./spark-submit--监督--部署模式集群--conf'spark.driver.extrajavaoptions=-javaagent:jars/jmx_prometheus_javaagent-0.12.0.jar=8060:/conf/spark.ym
我将我的项目从Spring-Boot2.1.9移动到2.2.0。 在启动项目时,我面临下面的消息。 是什么导致了这个问题? pom.xml
我在AWS CLB后面有一个nginx(k8s中的nginx入口)设置,根据HTTP头和经典负载平衡器以及经典负载平衡器的侦听器配置,我应该能够在nginx中接收X-Forwarded-Proto头。 但是在经历了CLB监听器配置之后,我没有看到任何关于这个设置的信息,我将其设置为转发TCP端口443并尝试在nginx中检查,返回null
问题内容: 考虑以下示例: 我不确定Java语言规范中是否有一项规定要加载变量的先前值以便与右侧()进行比较,该变量应按照方括号内的顺序进行计算。 为什么第一个表达式求值,而第二个表达式求值?我本来希望先被评估,然后再与自身()比较并返回。 这个问题与Java表达式中子表达式的求值顺序不同,因为这里绝对不是“子表达式”。需要 加载 它以进行比较,而不是对其进行“评估”。这个问题是特定于Java的,