2017-10-11 13 views
0

J'essaye d'aller chercher la structure <> les données de la table de Hive using JDBC par l'intermédiaire de l'application de Java Swing pour la visualisation de jfreechart. Lors de l'exécution d'une requête SQL, une erreur SQLException est générée, mais elle génère une exception (rs.getString ("user.name")). Veuillez me trouver une suggestion comment obtenir des données de structure de table de ruche en utilisant l'application JDBC?Comment puis-je obtenir des données de structure à partir d'une table Hive en utilisant JDBC?

String s1 = jTextField1.getText(); 
    String s2 = jTextField2.getText(); 
    String s3 = jTextField4.getText(); 
    try 
    { 
     Class.forName("org.apache.hive.jdbc.HiveDriver"); 
     Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/"+s1,"arunachalam",""); 
     Statement st = con.createStatement(); 
     String sql = "select user.name,user.followers_count c from "+s2+" order by c desc"; 
     ResultSet rs = st.executeQuery(sql); 
     DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
     while(rs.next()) 
     { 
      String name = rs.getString("user.name"); 
      int count = rs.getInt("user.followers_count"); 
      dataset.setValue(count,name,name); 
     } 
     JFreeChart chart = ChartFactory.createBarChart("Followers Count", "Screen Name", "Users Follower Count", dataset, PlotOrientation.VERTICAL, false, true, false); 
     CategoryPlot p = chart.getCategoryPlot(); 

     int width = 560; 
     int height = 370; 
     File bchart = new File("Chart.jpeg"); 
     ChartUtilities.saveChartAsJPEG(bchart , chart , width , height); 
    } 
    catch(Exception e) 
    { 
     showMessageDialog(null, e); 
    } 
+0

Utilisez 'rs.getString (1);' à la place? –

+0

merci frère. Ça a marché. – Arunachalam

Répondre

0

Au lieu d'utiliser comme cette

rs.getString("user.name"); 

Utilisez ce lieu

rs.getString(1); 

Qu'est-ce que vous essayez de faire plus tôt était de renvoyer la colonne avec un nom ainsi que le nom de la table, utilisez plutôt le nom de référence/colonne ou vous pouvez le référencer par l'ordre dans lequel il est utilisé dans la clause SELECT.

Vous pouvez ajouter d'autres colonnes en fonction de la commande SELECT. J'espère que cela t'aides!