2016-07-09 17 views
1

Ich muss die equipment_id auswählen, für die der "Reading" in aufeinanderfolgenden Zeitstempeln aus der unteren Hive-Tabelle 'Object_report' aufsteigend ist.Hive - Auswahl der ID, für die der Wert des anderen Feldes in aufeinanderfolgenden Zeitstempeln aufsteigend ist

station_id equipment_id timpe_stamp Reading 
1    100  00:00:01 60 
2    100  00:00:02 61 
3    100  00:00:03 62 
4    100  00:00:04 60 
5    100  00:00:05 61 
.    .   .  . 
.    .   .  . 
16    114  00:00:11 66 
17    114  00:00:12 65 
.    .   .  . 
.    .   .  . 
.    .   .  . 
.    .   .  . 
29    112  00:00:23 71 
30    113  00:00:24 69 

zum Beispiel: - Ich brauche die euipment_id der Lese ist aufsteigend nach fünf aufeinander folgenden Zeitstempeln wählen (zB: - 60-> 61-> 62-> 63-> 64-> 65) und soll nicht Wählen Sie die Ausrüstungs_ID aus, für die die Messwerte für folgende Zeitstempel angezeigt werden (z. B .: - 60-> 61-> 62-> 60-> 61). Ich kämpfe, um die korrekte Frage zu bekommen. Jeder Vorschlag wird sehr geschätzt.

Antwort

0

habe ich versucht, eine Schleife für die Anforderung:

 List<Integer> lis = new ArrayList<Integer>(); 
    int j=0, flag=1, width=0; 

    lis.add(0, 60); 
    lis.add(1, 61); 
    lis.add(2, 61); 
    lis.add(3, 60); 
    lis.add(4, 61); 
    lis.add(5, 62); 
    lis.add(6, 64); 
    lis.add(7, 66); 
    lis.add(8, 68); 



     Iterable<Integer> itr = lis; 

     for(int i : itr) 
     { 
      if(j != 0) { 

       if(width == 4) 
        break; 

       if(i>j) { 
        flag = 1; 
        width++; 
       } 
       else if(i<j && width != 4) { 
        flag = 0; 
        width = 0; 
       } 
      } 

      System.out.println(i); 
      j=i; 
     } 

     System.out.println("flag = "+flag+"width = "+ (width)); 

} 

Output: Flag = 1 Breite = 4

I Überlegen Sie, ob dies in die Reducer-Klasse eingesteckt werden kann, in der der Schlüssel IntWritable equipment_id ist und der Wert Iterable IntWritable ist und die Werte dieser Schleife zugeführt werden. unter der Annahme, dass alle Zeitstempelwerte einzigartig sind. Ich weiß nicht, ob dies eine optimale Lösung ist, unter Berücksichtigung der Datenmenge. Ich hoffe es hilft !!!!!

0

Sie müssen wahrscheinlich zu Schwein oder MR gehen. Sie versuchen, eine sortierte Untersequenz der Länge 5 in einer Reihe von Lesungen zu finden, was wahrscheinlich nicht in einer einzigen Abfrage erreicht werden kann.

+0

Dies beantwortet die Frage nicht. Verbringen Sie etwas Zeit auf [how-to-answer] (http://stackoverflow.com/help/how-to-answer) und bearbeiten Sie Ihre Antwort. – syadav