- Geocoding SDK: When using the Geocoding CLI tool to manually configure your
reference data, the bash command now requires an additional flag:
--t json
. This command generates the JsonDataConfig.json file, which contains configuration information for your geocoding datasets and needs to be regenerated for every software and data release.
It is strongly recommended to use automatic data configuration, by providing the location of the data, to configure the geocoding engine. For more information, see the Spectrum Geocoding for Big Data User Guide on the Spectrum Spatial for Big Data documentation landing page.cli configure --t json --s /precisely/geo_addr/data --d /precisely/geocoding/software/resources/config
-
(HAD-6867) Addressing SDK: Some fields on the result object may be inaccessible using an output field expression. If you see an error that starts with 'Error accessing field: Unable to invoke method', you may need to use a custom executor to access that method via the result's "custom fields". See the example below that demonstrates this workaround.
Workaround// Build a UDF that uses a custom executor to access the address match type from a // geocode result. The match type value is accessed via the custom field "MATCH_TYPE_LABEL" val customUdf: UserDefinedFunction = new AddressingBuilder() .withResourcesLocation(...) .withDataLocations(...) .udfBuilder() .withOutputFields(..., "customFields['MATCH_TYPE_LABEL'] as MATCH_TYPE_LABEL") .forCustomExecutor(new AddressingExecutor { override def execute( input: RequestInput, preferences: Option[Preferences], addressing: Addressing): Response = { val response = addressing.geocode(input.requestAddress(), preferences.orNull) if(response.getStatus == Status.OK) { val firstResult = response.getResults.get(0) val matchTypeLabel = firstResult.getExplanation.getAddressMatch.getType.label() firstResult.getCustomFields.put("MATCH_TYPE_LABEL", matchTypeLabel) } response } })
- (HAD-4323) Some types of queries will cause Hive to evaluate UDFs in the HiveServer2 process space instead of on a data node. The Routing UDFs in particular use a significant amount of memory and can shut down the Hive server due to memory constraints. To process these queries, we recommend increasing the amount of memory available to the HiveServer2 process (for example, by setting HADOOP_HEAPSIZE in hive-env.sh).
- (HAD-2967) A null pointer exception is thrown while running the following constant
geocoding queries with Hive on Spark or TEZ:
SELECT ReverseGeocode(-76.97921145819674,38.89325106109181,"epsg:4326");
SELECT Geocode("","One Second Street","","Jersey City","","07302","USA");
This is due to an issue in Hive: https://issues.apache.org/jira/browse/HIVE-16587
WorkaroundCREATE table dual (country string); INSERT into dual values("usa"); SELECT Geocode('','2920 LANGSTON PLACE SOUTHEAST APARTMENT 101', '','WASHINGTON','DC','20020',a.country) from dual a;