mysql - 使用 JDBC 对数据进行分组

标签 mysql sql python-3.x load-balancing

有没有办法在两个节点中使用 group by 函数,但作为通过 JDBC 连接的一个结果,有一个选项可以设置一个备份节点,但我们想在 2 个服务器上设置 group by 函数以获得一个查询,这里是 spark有 jdbc 连接

port_82 = "jdbc:mysql://******:**/packetlogic"
port_85 = "jdbc:mysql://******:**/packetlogic"
properties = {
    "user": "**",
    "password": "**",
    "driver": "",
    "ConnectionLoadBalance": 1
}

df =spark.read.format("JDBC").options(
    url = port_82,
    query = "select SUM(A),SUM(B),AVG(C),D,C FROM T WHERE ***** GROUP BY D,C  ",
    **properties
).load()

最佳答案

首先,创建表并像这样插入记录: 并编写如下代码:

Create table EMP (name varchar(12),id int(5),salary int(10));
INSERT INTO EMP(name,id,salary) VALUES("Arun",1,2500 );
INSERT INTO EMP(name,id) VALUES("Dinesh",3 );
INSERT INTO EMP(name,id,salary) VALUES("Karthik",3,5000 );
INSERT INTO EMP(name,id,salary) VALUES("Tamil",4,2500 );

public static void main(String[] args) throws Exception {

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/Arun", "root", "root");
    Statement st = conn.createStatement();

    st = conn.createStatement();
    ResultSet rs = st
            .executeQuery("  SELECT name,SUM(salary)from Emp GROUP BY name");

    while (rs.next()) {
        String name = rs.getString(1);
        String salary = rs.getString(2);
        System.out.println(name);
        System.out.println(salary);

    }

    rs.close();
    st.close();
    conn.close();

关于mysql - 使用 JDBC 对数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55374462/

相关文章:

mysql - 如何在 MYSQL 中通过另一列选择具有 MAX(列值)、PARTITION 的行?

mysql - 在 Electron 中访问 MySQL 数据库

php - 如何从 Doctrine 查询生成器中获取部分结果

mysql - 按列计算 SQL 出现次数

Ubuntu 上的 Python3 在 help() 命令上出现错误

mysql - 什么决定是否为 SQL 列编写 MUL

sql - 从 UTC 日期和时间获取时间戳

python - 子数据帧的子数据帧

python-3.x - 如何在 tensorflow 2 数据集中使用带有元组的 map ?

MySql 查询 : include days that have COUNT(id) == 0 but only in the last 30 days