小编uds*_*cbt的帖子

在PySpark中以编程方式设置驱动程序的内存大小

为了编写独立脚本,我想直接从Python开始并配置Spark上下文.使用PySpark的脚本我可以设置驱动程序的内存大小:

$ /opt/spark-1.6.1/bin/pyspark
... INFO MemoryStore: MemoryStore started with capacity 511.5 MB ...
$ /opt/spark-1.6.1/bin/pyspark --conf spark.driver.memory=10g
... INFO MemoryStore: MemoryStore started with capacity 7.0 GB ...
Run Code Online (Sandbox Code Playgroud)

但是当从Python模块启动上下文时,无法设置驱动程序的内存大小:

$ export SPARK_HOME=/opt/spark-1.6.1                                                                                                                                                                                                                                                                                                                
$ export PYTHONPATH=$PYTHONPATH:$SPARK_HOME/python
$ python
>>> from pyspark import SparkConf, SparkContext
>>> sc = SparkContext(conf=SparkConf().set('spark.driver.memory', '10g'))
... INFO MemoryStore: MemoryStore started with capacity 511.5 MB ...
Run Code Online (Sandbox Code Playgroud)

我所知道的唯一的解决办法是设置spark.driver.memorysparks-default.conf,这是不令人满意的.正如在解释这个职位,这是有道理的Java /斯卡拉不能够能够一旦JVM开始更改驱动程序的内存大小.在导入pyspark模块之前或导入模块时,有没有办法以某种方式从Python动态配置它?

python apache-spark pyspark

6
推荐指数
1
解决办法
5520
查看次数

Vim语法高亮显示几行匹配

我正在vim上实现一个语法文件来突出显示这样的层次结构

| text at level 1
| | text at level 2
| | text at level 2
| | | text at level 3
| text at level 1
Run Code Online (Sandbox Code Playgroud)

比如我用

syn match myMatch +^\(| \)\++
Run Code Online (Sandbox Code Playgroud)

突出水平指标.但是,我还要强调这些错误的模式

| text at level 1
| | | text at level 3
Run Code Online (Sandbox Code Playgroud)

这会使水平增加一个以上.我写了以下语法匹配

syn match myWrongMatch +^\(\(| \)*\)\(\n\|[^|].*\n\)\1\(| \)\{2,}+
Run Code Online (Sandbox Code Playgroud)

它可能不是最佳的,但它可以完成工作.问题是匹配是由正在编辑的行上的vim检查的,这样如果我通过删除第二行上的级别来修复错误,它将停止突出显示第二行,但仍然突出显示第一行,直到我也编辑它(比如删除并重写一个字符).

这个问题是我只能使用下一行信息匹配一行,而不是相反.由于这与正则表达式匹配似乎不可能,我想知道是否有可能要求v​​im检查当前编辑的行和前一行(或更广泛的上下文)中的匹配?另一个解决方案可能是通过检查上下文的区域来实现它,但到目前为止我还没有成功.

编辑:答案实际上在vim帮助:syn-sync-linebreaks(感谢Herbert Sitz指出我正确的部分).

使用匹配多行的模式时,一行中的更改可能导致模式在前一行中不再匹配.这意味着必须从更改的位置开始.可以使用"linebreaks"参数指定多少行.例如,当一个模式可能包含一个换行符时,请使用:

:syntax sync linebreaks=1
Run Code Online (Sandbox Code Playgroud)

结果是,在进行更改之前,重绘始终至少从一行开始."linebreaks"的默认值为零.通常,"minlines"的值大于"linebreaks".

这非常有效.

regex vim syntax-highlighting

5
推荐指数
1
解决办法
1287
查看次数

标签 统计

apache-spark ×1

pyspark ×1

python ×1

regex ×1

syntax-highlighting ×1

vim ×1