группирование данных с JDBC - PullRequest
1 голос
/ 27 марта 2019

есть ли способ использовать группирование по функции в двух узлах, но в качестве одного результата через соединение JDBC, есть возможность установить резервный узел, но мы хотим установить группирование по функции на 2 сервера, чтобы получить один запрос, вот искрас подключением 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()

1 Ответ

0 голосов
/ 27 марта 2019

Сначала создайте таблицу и вставьте записи следующим образом: И напишите следующий код:

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();
...