我使用的代码有一个类定义,该__init__方法包含一个*作为参数。举个简单的例子,
class Foo:
def __init__(self, *, bar=None):
self.bar = bar
Run Code Online (Sandbox Code Playgroud)
这是 Python 3.6 中的工作代码。什么是*争论吗?
我有一个整数列表,我需要将它分成给定数量的子列表(对顺序或每个子列表中的元素数量没有限制),以最小化每个子列表总和的平均差异的方式。
例如:
>>> x = [4, 9, 1, 5]
>>> sublist_creator(x, 2)
[[9], [4, 1, 5]]
Run Code Online (Sandbox Code Playgroud)
因为list(map(sum, sublist_creator(x, 2)))产量[9, 10],最小化平均距离。或者,[[9, 1], [4, 5]]同样正确,我的用例在两种可能性之间没有偏好。
我能想到的唯一方法是反复检查所有可能的组合,但我正在处理一个约 5000 个元素的列表,需要将其拆分为约 30 个子列表,因此这种方法非常昂贵。
在PySpark中创建Spark上下文时,我通常使用以下代码:
conf = (SparkConf().setMaster("yarn-client").setAppName(appname)
.set("spark.executor.memory", "10g")
.set("spark.executor.instances", "7")
.set("spark.driver.memory", "5g")
.set("spark.shuffle.service.enabled","true")
.set("spark.dynamicAllocation.enabled","true")
.set("spark.dynamicAllocation.minExecutors","5")
)
sc = SparkContext(conf=conf)
Run Code Online (Sandbox Code Playgroud)
但是,这会将其放入默认队列,该队列几乎总是超出容量。我们有几个较不繁忙的队列可用,所以我的问题是-如何将我的Spark上下文设置为使用另一个队列?
编辑:澄清一下-我正在为交互式作业设置队列(例如,在Jupyter笔记本中进行探索性分析),因此我无法设置带有火花提交的队列。
我正在尝试创建一个 seaborn JointGrid 对象,在joint_plot和边缘的KDEs中使用散布+轮廓。这让我非常接近,但 y 轴边际没有适当缩放。手动重新缩放边缘轴的最佳方法是什么?提前致谢!
f = p.figure()
ax = f.add_subplot(111)
g = sns.JointGrid(xdata, ydata, xlim=(0,1), ylim=(0,1))
g.plot_joint(sns.kdeplot, shade=True, cmap="Greys", n_levels=10)
g.plot_joint(p.scatter, color='#e74c3c', s=1.5)
g.plot_marginals(sns.kdeplot, color="black", shade=True)
g.ax_joint.collections[0].set_alpha(0)
g.set_axis_labels(r'$\frac{\chi_{0}^2-\chi_{\mathrm{null},1}^2{\chi_{0}^2}$', r'$\frac{\chi_{0}^2-\chi_{\mathrm{null},4}^2}{\chi_{0}^2}$')
p.gcf().subplots_adjust(bottom=.15)
p.gcf().subplots_adjust(left=.15)
p.savefig('something')
Run Code Online (Sandbox Code Playgroud)
这是一个新帐户,我没有发布图片的声誉 - 我尝试的链接在这里 -> http://i.imgur.com/9iG860U.png
我正在编写一个 bash 脚本,它需要检查环境变量是否存在,如果尚未设置该变量,则将其设置为运行脚本的父目录。如果它已经设置,那么它不应该执行任何操作。这样做的最佳方法是什么?
python ×3
python-3.x ×2
apache-spark ×1
bash ×1
hadoop ×1
hadoop-yarn ×1
linux ×1
matplotlib ×1
pyspark ×1
seaborn ×1