Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [geomesa-users] Error in SimpleFeatureTypes.createType

Hello,

The parsing is actually failing on character 40, not attribute 40 - it's the colon in the attribute name that is messing it up, i.e. 'name:af'. Colon is used to delimit attribute names from their type, so we don't currently support it in names. If that is a crucial feature, it would be possible to modify the encoding to quote or escape the colon and the parsing to respect that.

We serialize simple feature types to strings and back in many places in our code, so while it's possible to create a simple feature type attribute with a colon in it using a SimpleFeatureTypeBuilder or other methods (presumably what you have done), it will cause problems eventually.

Thanks,

Emilio

On 09/12/2017 01:05 PM, John Meehan wrote:
Hi,

I’m running into a parse error for this type specification.  But can’t trace it any deeper since it goes into the parboiled innards.  Any ideas why it would fail?  Attribute at index 40 seems arbitrary since it’s no different than the 30-some attributes before it.

Traced it down from failures during a Spark YARN job when called from GeomesaSparkKryoRegistrator.ExecutorKryClient.putType.  Running the job locally succeeds since it appears the types get cached in the local ConcurrentHashMap and never hit this.

val spec = "ref:String,flag:String,name:String,name:af:String,name:am:String,name:an:String,name:ar:String,name:az:String,name:ba:String,name:be:String,name:bg:String,name:bn:String,name:bo:String,name:br:String,name:bs:String,name:ca:String,name:ce:String,name:cs:String,name:cv:String,name:cy:String,name:da:String,name:de:String,name:dv:String,name:el:String,name:en:String,name:eo:String,name:es:String,name:et:String,name:eu:String,name:fa:String,name:fi:String,name:fr:String,name:fy:String,name:ga:String,name:gd:String,name:gl:String,name:gn:String,name:gu:String,name:gv:String,name:he:String,name:hi:String,name:hr:String,name:ht:String,name:hu:String,name:hy:String,name:ia:String,name:id:String,name:ie:String,name:io:String,name:is:String,name:it:String,name:ja:String,name:jv:String,name:ka:String,name:kk:String,name:kl:String,name:kn:String,name:ko:String,name:ku:String,name:kv:String,name:kw:String,name:la:String,name:lb:String,name:li:String,name:ln:String,name:lt:String,name:lv:String,name:mk:String,name:ml:String,name:mn:String,name:mr:String,name:ms:String,name:my:String,name:na:String,name:nl:String,name:nn:String,name:no:String,name:nv:String,name:oc:String,name:or:String,name:os:String,name:pa:String,name:pl:String,name:ps:String,name:pt:String,name:qu:String,name:ro:String,name:ru:String,name:rw:String,name:sa:String,name:se:String,name:sh:String,name:si:String,name:sk:String,name:sl:String,name:so:String,name:sq:String,name:sr:String,name:ss:String,name:su:String,name:sv:String,name:sw:String,name:ta:String,name:te:String,name:tg:String,name:th:String,name:tk:String,name:tl:String,name:tr:String,name:tt:String,name:ug:String,name:uk:String,name:ur:String,name:uz:String,name:vi:String,name:vo:String,name:wo:String,name:yi:String,name:yo:String,name:zh:String,boundary:String,name:ace:String,name:als:String,name:ang:String,name:arc:String,name:arz:String,name:ast:String,name:bar:String,name:bcl:String,name:bpy:String,name:bug:String,name:bxr:String,name:ceb:String,name:ckb:String,name:crh:String,name:csb:String,name:diq:String,name:dsb:String,name:ext:String,name:frp:String,name:gag:String,name:hak:String,name:hif:String,name:hsb:String,name:ilo:String,name:kbd:String,name:lez:String,name:lij:String,name:lmo:String,name:nah:String,name:nds:String,name:new:String,name:nov:String,name:pam:String,name:pih:String,name:pms:String,name:pnb:String,name:sah:String,name:scn:String,name:sco:String,name:szl:String,name:tzl:String,name:udm:String,name:war:String,name:wuu:String,name:xal:String,name:zea:String,timezone:String,wikidata:String,ISO3166-1:String,wikipedia:String,state_code:String,admin_level:String,border_type:String,name:simple:String,name:zh-yue:String,name:bat-smg:String,name:fiu-vro:String,name:be-tarask:String,is_in:continent:String,name:zh-min-nan:String,ISO3166-1:alpha2:String,ISO3166-1:alpha3:String,ISO3166-1:numeric:String,*geometry:MultiPolygon"

val sft = SimpleFeatureTypes.createType("testType", spec) 
//Caused by: org.parboiled.errors.ParsingException: Invalid spec string at index 40. Expected one of: attribute type binding, geometry type binding.

spec.split(",")(40) 
//String = name:hi:String


_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.locationtech.org/mailman/listinfo/geomesa-users


Back to the top