小编SQL*_*ion的帖子

如何在不同的时区按年 - 月 - 日汇总

我有一个MongoDB,它以UTC格式存储日期对象.好吧,我想在不同的时区(CET)按年,月份进行汇总.

这样做,适用于UTC:

    BasicDBObject group_id = new BasicDBObject("_id", new BasicDBObject("year", new BasicDBObject("$year", "$tDate")).
                append("month", new BasicDBObject("$month", "$tDate")).
                append("day", new BasicDBObject("$dayOfMonth", "$tDate")).
                append("customer", "$customer"));

    BasicDBObject groupFields = group_id.
            append("eventCnt", new BasicDBObject("$sum", "$eventCnt")); 

    BasicDBObject group = new BasicDBObject("$group", groupFields);
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用命令行(未测试,我只测试了java版本):

{
    $group: {
        _id: {
            "year": {
                "$year", "$tDate"
            },
            "month": {
                "$month", "$tDate"
            },
            "day": {
                "$dayOfMonth", "$tDate"
            },
            "customer": "$customer"
        },
        "eventCount": {
            "$sum": "$eventCount"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在聚合框架内将这些日期转换为CET?

例如'2013-09-16 23:45:00 UTC'是'2013-09-17 00:45:00 CET',这是另一天.

mongodb mongo-java

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

java暗示长期投射行为

今天我发现我的一个程序是错误的,因为隐式演员不起作用,更好的说它没有像我期望的那样工作.

我有这样的事情

long normal = 1000*24*3600*1000;
System.out.println("normal :"+normal);
Run Code Online (Sandbox Code Playgroud)

正常:500.654.​​080

询问excel正确的计算输出应该是86.400.000.000;

我去了java手册,长数据类型的最大值应该是2 ^ 63-1,即:9.223.372.036.854.780.000

然后我试图强迫演员长,它似乎工作:

    long normal = 1000*24*3600*1000;
    long explicit = 1000*24*3600*1000l; // 1000l <- letter L used at the end for long
    long cast = 1000*(long)(24*3600*1000);

    System.out.println("normal :"+normal);
    System.out.println("explicit :"+explicit );
    System.out.println("cast :"+cast);
Run Code Online (Sandbox Code Playgroud)

正常:500.654.​​080

显式:86.400.000.000

演员:86.400.000.000

我认为正在发生的是,java在整数溢出发生时将计算作为整数运算.

Java隐式不应该将那些整数转换为长整数?

java casting

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

从 Pyspark 中的数据帧插入或更新增量表

我当前有一个 pyspark 数据框,我最初使用下面的代码创建了一个增量表 -

df.write.format("delta").saveAsTable("events")
Run Code Online (Sandbox Code Playgroud)

现在,由于上面的数据框根据我的要求每天填充数据,因此为了将新记录附加到增量表中,我使用了以下语法 -

df.write.format("delta").mode("append").saveAsTable("events")
Run Code Online (Sandbox Code Playgroud)

现在我在数据块和集群中完成了这一切。我想知道如何在 python 中编写通用 pyspark 代码,如果增量表不存在,则创建增量表,如果增量表存在,则追加记录。我想做这件事,因为如果我将我的 python 包给某人,他们不会在其环境中具有相同的增量表,因此应该从代码动态创建它。

apache-spark pyspark delta-lake

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

用于查找给定java进程的-Xms和-Xmx变量值的命令?

我有一个java程序,我运行并用jps找出它的进程ID.

我怎样才能看到这个java进程的-Xms和-Xmx变量的值是多少?

java jvm java-opts

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

如何以用户身份使用ResourceManager Web界面

每次我尝试使用Hadoop资源管理器Web界面(http://resource-manger.host:8088/cluster/)时,我都会以dr.who身份登录.

我的问题是,我如何以其他用户身份登录?在这种情况下,我想以自己的身份登录并拥有比dr.who更高的权限.

在此输入图像描述

hadoop resourcemanager

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

HIVE 查询日志位置

我发现很难找到 HIVE 查询日志,基本上我想看看执行了哪些查询。

基本上我想在这种状态下找到查询:

select foo, count(*) from table where field=value group by foo;
Run Code Online (Sandbox Code Playgroud)

hive

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

当外键已经存在时添加主键

我需要在“用户名”表上添加主键

我有3列:

userid int(10)
username char(20)
user char(50)
Run Code Online (Sandbox Code Playgroud)

和主键设置在“用户名”字段,我用它作为外键链接到另一个表。现在我还需要在'userid'字段上添加主键...所以我尝试了:

alter table `usernames` drop primary key, add primary key(userid,username);
Run Code Online (Sandbox Code Playgroud)

我得到一个错误的说法

ERROR 1553 (HY000): Cannot drop index 'PRIMARY":needed in a foreign key constraint 
Run Code Online (Sandbox Code Playgroud)

有什么可能的方法吗?

mysql sql sqlite mysql-workbench

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