01/10/2021

Cosas con Java Datasets

Unas cuantas cositas que se pueden hacer con un Dataset:

Para realizar un filtrado de un Dataset por un listado de datos…, lo que viene siendo un SELECT WHERE xxx IN(….)
Inicialmente pensaba que debería usar el método dataset.isin() para realizar un filtrado, pero se puede usar el dataset.isInCollection() que resulta más cómodo por no necesitar utilizar una scala.collection.Seq

List<String> list = new ArrayList<String>();
list.add("P3730");
list.add("P3731");

Dataset<Row> dstmp = ds.where(ds.col("nombrecolumna").isInCollection(list));

Si finalmente resulta necesario utilizar una scala.collection.Seq para el dataset.isin(), la manera de convertir un java.util.List en un Seq es la siguiente:

List<Object> list = new ArrayList<Object>();
list.add("P3730");
list.add("P3447");

		
scala.collection.Seq<Object> seq = JavaConverters.asScalaIteratorConverter(list.iterator()).asScala().toSeq();

En este segundo caso es importante que el List a convertir sea de tipo List<Object>, porque si se crea de tipo List<String> no funcionará.