我有一个将大量数据写入stdout的进程,我将其重定向到日志文件.我想通过偶尔将当前文件复制到新名称并截断它来限制文件的大小.
我通常截断文件的技巧,比如
cp /dev/null file
Run Code Online (Sandbox Code Playgroud)
不起作用,大概是因为这个过程正在使用它.
有什么方法可以截断文件吗?或者删除它并以某种方式将进程'stdout与新文件关联?
FWIW,它是第三方产品,我无法修改以更改其日志记录模型.
EDIT重定向文件似乎与上面的副本有相同的问题 - 文件在下次写入时返回到之前的大小:
ls -l sample.log ; echo > sample.log ; ls -l sample.log ; sleep 10 ; ls -l sample.log
-rw-rw-r-- 1 user group 1291999 Jun 11 2009 sample.log
-rw-rw-r-- 1 user group 1 Jun 11 2009 sample.log
-rw-rw-r-- 1 user group 1292311 Jun 11 2009 sample.log
Run Code Online (Sandbox Code Playgroud) 使用arrange函数dplyr,我们可以按升序或降序排列行.想知道如何按自定义顺序排列行.请参阅MWE.
Reg <- rep(LETTERS[1:3], each = 2)
Res <- rep(c("Urban", "Rural"), times = 3)
set.seed(12345)
Pop <- rpois(n = 6, lambda = 500000)
df <- data.frame(Reg, Res, Pop)
df
Reg Res Pop
1 A Urban 500414
2 A Rural 500501
3 B Urban 499922
4 B Rural 500016
5 C Urban 501638
6 C Rural 499274
df %>%
arrange()
Run Code Online (Sandbox Code Playgroud)
期望的输出
Reg Res Pop
5 C Urban 501638
6 C Rural 499274
1 A Urban 500414
2 …Run Code Online (Sandbox Code Playgroud) 我的df如下:
a <- data_frame(keep=c("hello", "world"),drop = c("nice", "work"))
a
Source: local data frame [2 x 2]
keep drop
(chr) (chr)
1 hello nice
2 world work
Run Code Online (Sandbox Code Playgroud)
我可以使用a %>% select(-drop)删除列没有问题.但是,如果我想将变量传递给present drop列,则返回错误.
name <- "drop"
a %>% select(-(name))
Error in -(name) : invalid argument to unary operator
Run Code Online (Sandbox Code Playgroud) 我正在设置maven构建,并且需要在命令行上将目标服务器指定为属性(然后用于选择适当的配置文件),例如
mvn -Denv=test
Run Code Online (Sandbox Code Playgroud)
如果财产未设置,我希望构建失败 - 这可能吗?
是的,我是Maven的新手.
编辑:我已经看到这个链接,这似乎暗示它是不可能的,但我不知道它是如何最新的.
我正在推出一个pyspark计划:
$ export SPARK_HOME=
$ export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.9-src.zip
$ python
Run Code Online (Sandbox Code Playgroud)
和py代码:
from pyspark import SparkContext, SparkConf
SparkConf().setAppName("Example").setMaster("local[2]")
sc = SparkContext(conf=conf)
Run Code Online (Sandbox Code Playgroud)
如何添加jar依赖项,例如Databricks csv jar?使用命令行,我可以像这样添加包:
$ pyspark/spark-submit --packages com.databricks:spark-csv_2.10:1.3.0
Run Code Online (Sandbox Code Playgroud)
但我没有使用任何这些.该程序是一个更大的工作流程的一部分,没有使用spark-submit我应该能够运行我的./foo.py程序,它应该工作.
我正在尝试使用svnmerge.py来合并一些文件.它使用python,当我使用它时,我得到一个错误 - "系统找不到指定的文件".工作中的同事运行相同版本的svnmerge.py和python(2.5.2,特别是r252:60911)没有问题.
我找到了这个链接,它描述了我的问题.尝试在那里概述的内容,我确认Python可以找到svn(它在我的路径中):
P:\>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> i,k = os.popen4("svn --version")
>>> i.close()
>>> k.readline()
'svn, version 1.4.2 (r22196)\n'
但是,看一下svnmerge.py代码,我发现对于python版本2.4及更高版本,它遵循不同的执行路径.它使用subprocess.Popen()而不是调用os.popen4().尝试重现错误:
C:\>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> p = subprocess.Popen("svn --version", stdout=subprocess.PIPE,
>>> close_fds=False, stderr=subprocess.PIPE)
Traceback (most … 我有以下代码导致类似表格的输出
lvs <- c("normal", "abnormal")
truth <- factor(rep(lvs, times = c(86, 258)),
levels = rev(lvs))
pred <- factor(
c(
rep(lvs, times = c(54, 32)),
rep(lvs, times = c(27, 231))),
levels = rev(lvs))
xtab <- table(pred, truth)
library(caret)
confusionMatrix(xtab)
confusionMatrix(pred, truth)
confusionMatrix(xtab, prevalence = 0.25)
Run Code Online (Sandbox Code Playgroud)
我想将输出的以下部分导出为.csv表格
Accuracy : 0.8285
95% CI : (0.7844, 0.8668)
No Information Rate : 0.75
P-Value [Acc > NIR] : 0.0003097
Kappa : 0.5336
Mcnemar's Test P-Value : 0.6025370
Sensitivity : 0.8953
Specificity : 0.6279 …Run Code Online (Sandbox Code Playgroud) 我有以下数据框(抱歉没有提供dput的示例,当我在此处粘贴时,它似乎不适用于列表):
现在,我想创建一个新列y是需要之间的区别mnt_ope,并ref_amount为每一个元素ref_amount.结果将是每行中具有与相应值相同的元素数量的列表ref_amount.
我试过了:
data <- data %>%
mutate( y = mnt_ope - ref_amount)
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误:
Evaluation error: non-numeric argument to binary operator.
用dput:
structure(list(mnt_ope = c(500, 500, 771.07, 770.26, 770.26,
770.26, 770.72, 770.72, 770.72, 770.72, 770.72, 779.95, 779.95,
779.95, 779.95, 2502.34, 810.89, 810.89, 810.89, 810.89, 810.89
), ref_amount = list(c(500, 500), c(500, 500), c(771.07, 770.26,
770.26), c(771.07, 770.26, 770.26), c(771.07, 770.26, 770.26),
c(771.07, 770.26, 770.26), c(771.07, 770.26, 770.26), c(771.07, …Run Code Online (Sandbox Code Playgroud) 我想我想制作一个每个值有多个键的二维字典.
我知道如何使用defaultdict以下方法制作2d字典:
from collections import defaultdict
2d_dict = defaultdict(dict)
2d_dict['canned_food']['spam'] = 'delicious'
Run Code Online (Sandbox Code Playgroud)
而且我知道使用常规字典可以制作多个键
dictionary={('food','canned_food'):spam}
Run Code Online (Sandbox Code Playgroud)
但我想做的事情如下:
2d_dict[('canned_food','food')]['spam'] = 'delicious'
Run Code Online (Sandbox Code Playgroud)
在字典的第一维中,每个值需要~25个键.有没有办法做到这一点defaultdict?
即使有办法用dicts这样做,这是一个合理的方法来制作一个简单的多维查找表吗?