2017-12-18 9 views
0

Was ist der Unterschied zwischen diesen beiden Codes? Ich konnte die korrekte Ausgabe in HDFS mit dem ersten Code erhalten. Ausgabe: "Hostname Datum".
Aber mit dem zweiten Code konnte ich nur den Hostnamen bekommen, das Datum wird nicht angezeigt.
Kann mir bitte jemand den Unterschied zwischen diesen beiden Hadoop Codes erklären?Was ist der Unterschied zwischen diesen beiden Codes, um das Datum vom Zeitstempel zu erhalten?

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException 
{ 
     // HostName TimeStamp      CPU  %user   
     // phddn001 240613,20:44  Average:  all  4.05   

    String valueTokens[] = value.toString().split(" "); 
    String hostName = valueTokens[0]; 
    String date = ""; 
    String timestamp = ""; 
    for (int cnt = 1; cnt < valueTokens.length; cnt++) 
    { 
     if (valueTokens[cnt].length() > 0) 
     { 
      timestamp = valueTokens[cnt]; 
      break; 
     } 
    } 
    try 
    { 
     date = timestamp.split(",")[0]; 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException 
{ 
     //  HostName TimeStamp       CPU  %user  
     //  phddn001 240613,20:44  Average:  all  4.05   

    String valueTokens[] = value.toString().split(" "); 
    String hostName = valueTokens[0]; 
    String date = ""; 

    try 
    { 
     date = valueTokens[1].split(",")[0]; 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 

Antwort

0

Sie sind auf einem einzigen Raum zu splitten. Ihre Schleife springt über die leeren Splits, bis sie eine nicht leere Zeichenfolge findet. Der zweite Code erfasst eine leere Zeichenfolge, versucht, ein Komma zu trennen, und löst dann wahrscheinlich eine Ausnahme aus, die Sie nicht erwähnen.

Die Split-Methode von Java akzeptiert eine Regex, also auf mehr als ein Leerzeichen aufgeteilt.

value.toString().split("\\s+") 
+0

Es hat funktioniert. Danke vielmals :) –

Verwandte Themen