- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问:如何在 jupyter PySpark session 中更改 SparkContext 属性 spark.sql.pivotMaxValues
我进行了以下代码更改以增加spark.sql.pivotMaxValues。遗憾的是,在重新启动 jupyter 并再次运行代码后,它对产生的错误没有任何影响。
from pyspark import SparkConf, SparkContext
from pyspark.mllib.linalg import Vectors
from pyspark.mllib.linalg.distributed import RowMatrix
import numpy as np
try:
#conf = SparkConf().setMaster('local').setAppName('autoencoder_recommender_wide_user_record_maker') # original
#conf = SparkConf().setMaster('local').setAppName('autoencoder_recommender_wide_user_record_maker').set("spark.sql.pivotMaxValues", "99999")
conf = SparkConf().setMaster('local').setAppName('autoencoder_recommender_wide_user_record_maker').set("spark.sql.pivotMaxValues", 99999)
sc = SparkContext(conf=conf)
except:
print("Variables sc and conf are now defined. Everything is OK and ready to run.")
<...(其他代码)...>
df = sess.read.csv(in_filename, header=False, mode="DROPMALFORMED", schema=csv_schema)
ct = df.crosstab('username', 'itemname')
在我的交叉表代码行上抛出 Spark 错误消息:
IllegalArgumentException: "requirement failed: The number of distinct values for itemname, can't exceed 1e4. Currently 16467"
我希望我实际上并没有设置我试图设置的配置变量,那么有什么方法可以以编程方式实际设置该值(如果可能的话)?谢谢。
引用文献:
Finally, you may be interested to know that there is a maximum number of values for the pivot column if none are specified. This is mainly to catch mistakes and avoid OOM situations. The config key is spark.sql.pivotMaxValues and its default is 10,000.
来源:https://databricks.com/blog/2016/02/09/reshaping-data-with-pivot-in-apache-spark.html
我更愿意向上更改配置变量,因为我已经编写了交叉表代码,该代码在较小的数据集上效果很好。如果事实证明确实无法更改此配置变量,那么我的备份计划按顺序为:
最佳答案
kernel.json
此配置文件应与 jupyter 一起分发~/.ipython/kernels/pyspark/kernel.json
它包含 SPARK 配置,包括变量 PYSPARK_SUBMIT_ARGS - 将与 spark-submit
脚本一起使用的参数列表。
您可以尝试将 --conf spark.sql.pivotMaxValues=99999
添加到上述脚本中的此变量。
PS在某些情况下,人们试图覆盖此变量 programmatically 。你也可以尝试一下...
关于python - 如何在jupyter PySpark session 中更改SparkContext属性spark.sql.pivotMaxValues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50530819/
我是一名优秀的程序员,十分优秀!