How to delete index layer data
How to delete index layer data
The Data Client Library provides the class LayerUpdater to perform update
operations on index layers.
The LayerUpdater has 3 methods:
updateLayer(catalogHrn, layerId)defines the catalog and layer which should be updated.option("olp.deleteTimeoutKey", timeoutInMsec)defines the timeout of thedeletefunction call in milliseconds. Default is 100 seconds.delete(queryString)performs the delete operation according the query string. The query string is in RSQL format. Thedeletefunction call is blocking/synchronous. It returns when the delete operation finished or after timeout is expired as set byoptionfunction.
Project dependencies
If you want to create an application that uses the HERE platform Spark Connector to delete data from index layer, add the required dependencies to your project as described in chapter Dependencies for Spark Connector.
Examples
The following snippet demonstrates how to delete data from an index layer of a catalog.
import com.here.platform.data.client.spark.LayerDataFrameReader.SparkSessionExt
import com.here.platform.data.client.spark.scaladsl.{
GroupedData,
IndexDataConverter,
IndexRowMetadata
}
import com.here.platform.pipeline.PipelineContext
import org.apache.spark.sql.SparkSession
val df = sparkSession
.updateLayer(catalogHrn, layerId)
.delete(s"testId == $testId")
df.show()
val deleteResult = df.select("result").first().getString(0)
val deletedCount = df.select("count").first().getInt(0)
val deletionMessage = df.select("message").first().getString(0)import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
Dataset<Row> df =
JavaLayerUpdater.create(sparkSession)
.updateLayer(catalogHrn, layerId)
.delete("testId == " + testId);
int deletedCount = df.select("count").first().getInt(0);
String deletionMessage = df.select("message").first().getString(0);
NoteFor information on RSQL, see RSQL.
Updated 19 days ago