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
|