0

I have a CSV ordered based on the value of the "url" column. I would like to select the first three rows for each "url" value. If the rows, for the url value, are less than 3 (2 or 1), I would like to select them anyway.

The starting CSV is the following:

 url;review;priority;length
 zonk-di-brigada-igor-torino;"Ora sono tornati i vecchi gestori.";0;15
 zonk-di-brigada-igor-torino;"Buona qualità dei prodotti.";0;13
 zonk-di-brigada-igor-torino;"Ultimamente però l'apericena è scaduto.";0;13
 zonk-di-brigada-igor-torino;"I coktail sono buoni.";0;11
 zonk-di-brigada-igor-torino;"Per non parlare dei cocktail.";0;10
 zonk-di-brigada-igor-torino;"Locale molto bello.";0;7
 zichella-torino;"Che pasticceria";1;19
 zichella-torino;"Bar pasticceria di classe.";1;18

I want to obtain:

 url;review
 zonk-di-brigada-igor-torino;"Ora sono tornati i vecchi gestori."
 zonk-di-brigada-igor-torino;"Buona qualità dei prodotti."
 zonk-di-brigada-igor-torino;"Ultimamente però l'apericena è scaduto."
 zichella-torino;"Che pasticceria"
 zichella-torino;"Bar pasticceria di classe."

I started with this code but selects only one row.

 ArrayList<String> urls = new ArrayList<String>();
 String url, text;
 for (CSVRecord csvRecord : csvParserMatrix) 
 {
   url = csvRecord.get("url");
   text = csvRecord.get("review");
   if(!urls.contains(url))
   {
        urls.add(url);
        bw.write(url+";"+'"'+text+'"'+"\n");
   }
 }
Harshal Parekh
  • 5,918
  • 4
  • 21
  • 43
ramos
  • 3
  • 4

0 Answers0