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");
}
}