除了DDD之外还有什么可以绘制我的数据结构的图表,比如在Linux上运行的DDD吗?
ddd还可以运行,只是有一种旧的笨拙的感觉,只是想探索替代品,如果有的话.
我正在谈论的是这个图像网格的顶部部分:
我正在解析日志并使用SQLAlchemy和Python将其插入MySQL或SQLite.现在我打开了与DB的连接,当我遍历每一行时,我在解析后插入它(这只是一个大表,现在对SQL不是很有经验).然后我在循环完成时关闭连接.汇总代码是:
log_table = schema.Table('log_table', metadata,
schema.Column('id', types.Integer, primary_key=True),
schema.Column('time', types.DateTime),
schema.Column('ip', types.String(length=15))
....
engine = create_engine(...)
metadata.bind = engine
connection = engine.connect()
....
for line in file_to_parse:
m = line_regex.match(line)
if m:
fields = m.groupdict()
pythonified = pythoninfy_log(fields) #Turn them into ints, datatimes, etc
if use_sql:
ins = log_table.insert(values=pythonified)
connection.execute(ins)
parsed += 1
Run Code Online (Sandbox Code Playgroud)
我的两个问题是:
我有一些导入的csv数据,我已经变成了一个xts对象.如果我尝试将其转换为ts对象(最终目标是使用像acf这样的函数),我得到:
"轮次错误(频率):数学函数的非数字参数"
转换它的代码是:
library("zoo")
#Working With Milliseconds
op <- options(digits.secs=3)
#Rename Function
clean_perfmon = function(x, servername) {
names(x)[names(x)=="X.PDH.CSV.4.0...Coordinated.Universal.Time..0."] <- "Time"
x$Time = strptime(x$Time, "%m/%d/%Y %H:%M:%OS")
return(x)
}
web02 = read.csv("/home/kbrandt/Desktop/Shared/web02_2011_07_20_1.csv")
web02 = clean_perfmon(web02, "NY.WEB02")
web02ts = xts(web02[,-1], web02[,"Time"])
Run Code Online (Sandbox Code Playgroud)
时间大多是常规的,但MS有一些变化:
time(web02ts)[1:3]
[1] "2011-07-20 11:21:50.459 EDT" "2011-07-20 11:21:51.457 EDT" "2011-07-20 11:21:52.456 EDT"
Run Code Online (Sandbox Code Playgroud)
一些数据有NA点:
> web02ts[1:3,1]
X..NY.WEB02.Process.Idle....Processor.Time
2011-07-20 11:21:50.459 NA
2011-07-20 11:21:51.457 1134.819
2011-07-20 11:21:52.456 1374.877
Run Code Online (Sandbox Code Playgroud)
更新:
更改为每秒分辨率和非na子集无济于事:
> as.ts(web02ts[2:10,1])
Error in round(frequency) : Non-numeric argument to mathematical function
> web02ts[2:10,1]
X..NY.WEB02.Process.Idle....Processor.Time
2011-07-20 …
Run Code Online (Sandbox Code Playgroud) 如何对数据框进行子集化,以便仅包含包含具有在其他行中显示特定次数的值的列的行.
举例来说,如果我有一个标有食品一栏,我将如何筛选出有食物,显示了小于5倍,在整个数据帧中的所有行?
查看时间格式说明符,我没有看到任何日期选项2/5/2010
(月/日/年,单个数字,没有前导空格).是否有以这种格式转换日期的内置方法?
在python中创建API时,我不确定使用init创建基本对象实例的方法.
在API中创建对象的实例时,用户很可能希望该对象成为以下两种情况之一:
是否有可接受的设计模式?init应该只创建一个空对象,然后消费者必须调用get或set方法吗?或者也许init应该讨论是否这是一个get或set?或者最后,应该从init的参数中得到或设置?
如果我有一个像这样的结构:
type Foo struct {
title string
Tags map[string]string
}
Run Code Online (Sandbox Code Playgroud)
如何保持一套独特的结构?根据我的理解,虽然结构相等是一件事 - 地图平等不是.这意味着我无法比较我的上述结构.因此,我不能将地图实现为设置模式.
我能想到的两个可能有用的选项是:将标签转换为已排序[][]string
或使用reflect.Deepequal.谁有更好的主意?
我有以下内容:
//In an init func
if logStashHost != "" {
lsconn, err = net.Dial("tcp", logStashHost)
}
...
ToLogStash(rec, lsconn)
Run Code Online (Sandbox Code Playgroud)
然后有两个功能:
func ReadLogStash(conn net.Conn) {
buffer := make([]byte, 256)
for {
_, err := conn.Read(buffer)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(buffer)
}
}
}
func ToLogStash(r *logrow.Record, conn net.Conn) {
b, err := json.Marshal(r)
if err != nil {
fmt.Println(err)
return
}
_, err = fmt.Fprintln(conn, string(b))
if err != nil {
fmt.Println(err)
}
}
Run Code Online (Sandbox Code Playgroud)
ReadLogStash是一个正在运行的goroutine.如果对方关闭,我会得到EOF.ReadLogStash中有什么好的实现让它在获得EOF时每隔X秒尝试重新建立连接?
如何使用apply系列函数,比如说apply.daily
多变量XTS?
例如:
Time,a,b ... 2012-02-11 16:21:24 4.7258 7.7258 2012-02-11 16:26:25 4.9096 12.3796 2012-02-11 16:31:25 4.7904 2.2204 ...
我将如何使用列apply.daily
和mean
整个矩阵.因此,结果将是当天的单个时间戳,a
下一列的平均值以及b
之后的列的平均值.
我想为任意数字列执行此操作(列和名称的数量未知 - 当然所有数字).
当使用类似的东西进行curl POST调用时,... | curl -XPOST --data @- https://example.com/
我是否也可以在命令行上对一些url参数进行url编码(使用curl本身,而不是bash函数),而不必自己对其进行编码并将它们放入curl的url参数中?
所以我希望 POST Body不进行urlencoded,但 url 参数在同一个curl 命令中进行url 编码。
例如:
echo '{"username":"a","password": [1,2]}' | curl --header "Content-Type: application/json" --request POST -d@- --data-urlencode "filter=." http://localhost:8080
Run Code Online (Sandbox Code Playgroud)
似乎没有做我想做的事,而且我已经对我的https://localhost:8080/
网址进行了后缀处理?filter...
,当参数需要大量编码时,我宁愿避免使用它。