小编Chr*_*tta的帖子

MongoDB聚合框架$ group可以返回一组值吗?

MongoDB中输出格式的聚合函数有多灵活?

数据格式:

{
        "_id" : ObjectId("506ddd1900a47d802702a904"),
        "port_name" : "CL1-A",
        "metric" : "772.0",
        "port_number" : "0",
        "datetime" : ISODate("2012-10-03T14:03:00Z"),
        "array_serial" : "12345"
}
Run Code Online (Sandbox Code Playgroud)

现在我正在使用这个聚合函数来返回DateTime数组,一个指标数组和一个计数:

{$match : { 'array_serial' : array, 
                            'port_name' : { $in : ports},
                            'datetime' : { $gte : from, $lte : to}
                        }
                },
               {$project : { port_name : 1, metric : 1, datetime: 1}},
               {$group : { _id : "$port_name", 
                            datetime : { $push : "$datetime"},
                            metric : { $push : "$metric"},
                            count : { $sum : …
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

14
推荐指数
1
解决办法
2万
查看次数

如何使用下划线的链方法返回多维数组中的第一项?

假设我有一个数组数组,我想返回数组中每个数组的第一个元素:

array = [[["028A","028B","028C","028D","028E"],
          ["028F","0290","0291","0292","0293"],
          ["0294","0295","0296","0297","0298"],
          ["0299","029A","029B","029C","029D"],
          ["029E","029F","02A0","02A1","02A2"]],
         [["02A3","02A4"],
          ["02A5", "02A6"]];
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

var firsts = [];
_.each(array, function(item){
  _.each(item, function(thisitem){
    firsts.push(_.first(thisitem));
  });
});
Run Code Online (Sandbox Code Playgroud)

但是,如果我想用下划线的_.chain()方法做什么呢?只是学习下划线,到目前为止似乎非常有用.

javascript chaining chain underscore.js

10
推荐指数
1
解决办法
2万
查看次数

如何将Windows时区转换为时区pytz理解?

在Windows python环境中,我可以像这样得到本地时区,但它不适用于pytz:

>>> import win32timezone
>>> win32timezone.TimeZoneInfo.local()
TimeZoneInfo(u'US Mountain Standard Time', True)
>>> win32timezone.TimeZoneInfo.local().timeZoneName
u'US Mountain Standard Time'
>>> tz = pytz.timezone(win32timezone.TimeZoneInfo.local().timeZoneName)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\pytz\__init__.py", line 185, in timezone
    raise UnknownTimeZoneError(zone)
pytz.exceptions.UnknownTimeZoneError: 'US Mountain Standard Time'
Run Code Online (Sandbox Code Playgroud)

将输出转换为时区名称pytz.timezone()的好方法是什么?


这是答案tzlocal(感谢Matt):

>>> from tzlocal.win32 import get_localzone_name
>>> get_localzone_name()
'America/Phoenix'
>>> tz = pytz.timezone(get_localzone_name())
>>> tz
<DstTzInfo 'America/Phoenix' MST-1 day, 17:00:00 STD>
Run Code Online (Sandbox Code Playgroud)

python timezone pytz

9
推荐指数
2
解决办法
5169
查看次数

通过ODBC连接到Spark SQL

根据此页面:https://spark.apache.org/sql/您可以通过ODBC或JDBC将现有BI工具连接到Spark SQL: 屏幕截图为spark sql

我不是指鲨鱼,因为这基本上是EOL:

正是出于这个原因,我们将Shark中的开发作为一个单独的项目结束,并将所有开发资源转移到Spark SQL,这是Spark中的一个新组件.

BI工具(如Tableau)如何通过ODBC连接到shark sql?

odbc hadoop apache-spark shark-sql

7
推荐指数
1
解决办法
1万
查看次数

MongoDB mapreduce丢失数据,返回'null'

所以这很奇怪.我正在尝试使用mapreduce在一个唯一的端口下对datetime/metrics进行分组:

文件布局:

{
        "_id" : ObjectId("5069d68700a2934015000000"),
        "port_name" : "CL1-A",
        "metric" : "340.0",
        "port_number" : "0",
        "datetime" : ISODate("2012-09-30T13:44:00Z"),
        "array_serial" : "12345"
}
Run Code Online (Sandbox Code Playgroud)

和mapreduce函数:

var query = {
        'array_serial' : array,
        'port_name' : { $in : ports },
        'datetime' : { $gte : from, $lte : to}

    }

    var map = function() {
        emit( { portname : this.port_name } , { datetime : this.datetime,
                                metric : this.metric });
    }

    var reduce = function(key, values) {
        var res = { dates : …
Run Code Online (Sandbox Code Playgroud)

mapreduce mongodb

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

如何在peewee 2中创建带枚举的表模型?

我正在尝试创建一个模型来描述在peewee中具有枚举字段的.

我在2.0版本之前看到EnumField已经从peewee.py文件中删除了,我在当前的文档中找不到任何概述如何实现它的内容.有谁知道我是否可以使用CharField?

python peewee

5
推荐指数
2
解决办法
3259
查看次数

这个架构有什么好的mongodb分片键?

架构

{
        "_id" : ObjectId("5069d68700a2934015000000"),
        "port_name" : "CL1-A",
        "metric" : 340,
        "port_number" : "0",
        "datetime" : ISODate("2012-09-30T13:44:00Z"),
        "array_serial" : "12345"
}
Run Code Online (Sandbox Code Playgroud)

每个阵列有128个端口,每个文档是该指标的一分钟数据.似乎array_serial对于分片键不是一个好选择,因为基数较低,也就是说,串行的所有数据12345都必须保留在同一个分片上而不能分成块,对吗?

这似乎port_number会允许适度的基数,但是它会使查询隔离失败,因为同一阵列上的多个端口的单个查询将跨越多个分片.我预计用户不需要一次查询超过4-8个端口.

答案是一个组合吗?我应该使用一段日期时间,如月份还是周?

sharding mongodb

3
推荐指数
1
解决办法
2106
查看次数

如何获取调用 python 函数的脚本名称?

我知道其中__file__包含包含代码的文件名,但是有没有办法获取调用该函数的脚本/文件的名称?

如果我有一个名为filenametest_b.py

def printFilename():
    print(__file__)
Run Code Online (Sandbox Code Playgroud)

我将函数导入filenametest_a.py

from filenametest_b import *

printFilename()
Run Code Online (Sandbox Code Playgroud)

我得到:

C:\Users\a150495>python filenametest_a.py
C:\Users\a150495\filenametest_b.py
Run Code Online (Sandbox Code Playgroud)

我可以在b文件中执行某些操作来打印文件名吗a

python

2
推荐指数
1
解决办法
1252
查看次数

可以将$ self传递给XML :: Twig处理程序吗?

我正在尝试解析根据类方法中给出的命令返回的不同XML ...但我想我在这里有点深入.

我希望能够使用其他方法并从XML :: Twig处理程序中访问WITHIN实例的属性.

这是我在Moose对象中定义的实例方法,以便使用XML :: Twig获取和解析XML:

sub get_xmls {
    my $self   = shift;
    my $sehost = shift;
    my $symm   = shift;

    $self->log->info("Getting XMLs for $sehost - $symm");

    my %SYMMAPI_CALLS = (
            "Config"   => {
                'command'    => "symcfg list -sid ${symm} -v",
                'handlers'   => {
                                 'SymCLI_ML/Symmetrix' => $self->can('process_symm_info')
                            },
                'dbtable'    => "inv_emc_array"
            },
            "Pools"  => {
                'command'    => "symcfg -sid ${symm} list -pool -thin",
                'handlers'   => {
                                  'DevicePool' => $self->can('process_symm_pool')
                            },
                'dbtable'    => "inv_emc_pool"
                     }
                );

    foreach my $key …
Run Code Online (Sandbox Code Playgroud)

perl moose xml-twig

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