I'm not familiar with EDI, but perhaps one option might be spark-xml-utils 
(https://github.com/elsevierlabs-os/spark-xml-utils).  You could transform the 
XML to the XML format required by  the xml-to-json function and then return the 
json.  Spark-xml-utils wraps the open source Saxon project and supports XPath, 
XQuery, and XSLT.    Spark-xml-utils doesn't parallelize the parsing of an 
individual document, but if you have your documents split across a cluster, the 
processing can be parallelized.  We use this package extensively within our 
company to process millions of XML records.  If you happen to be attending 
Spark summit in a few months, someone will be presenting on this topic 

Below is a snippet for xquery.
let $retval :=     <map>       <string key="doi">{$doi}</string>       <string 
key="cid">{$cid}</string>       <string key="pii">{$pii}</string>       <string 
key="contentType">{$content-type}</string>       <string 
key="srctitle">{$srctitle}</string>       <string 
key="documentType">{$document-type}</string>       <string 
key="documentSubtype">{$document-subtype}</string>       <string 
key="publicationDate">{$publication-date}</string>       <string 
key="articleTitle">{$article-title}</string>       <string 
key="issn">{$issn}</string>       <string key="isbn">{$isbn}</string>           
 <string key="lang">{$lang}</string>        {$tables}     </map>  return 

    On Tuesday, March 13, 2018, 8:52:42 AM EDT, Aakash Basu 
<aakash.spark....@gmail.com> wrote:  
 Hi Jörn,

Thanks for a quick revert. I already built a EDI to JSON parser from scratch 
using the 811 and 820 standard mapping document. It can run on any standard and 
for any type of EDI. But my built is in native python and doesn't leverage 
Spark's parallel processing, which I want to do for large and huge amount of 
EDI data.

Any pointers on that?


On Tue, Mar 13, 2018 at 3:44 PM, Jörn Franke <jornfra...@gmail.com> wrote:

Maybe there are commercial ones. You could also some of the open source parser 
for xml.

However xml is very inefficient and you need to du a lot of tricks to make it 
run in parallel. This also depends on type of edit message etc. sophisticated 
unit testing and performance testing is key.

Nevertheless it is also not as difficult as I made it sound now.

> On 13. Mar 2018, at 10:36, Aakash Basu <aakash.spark....@gmail.com> wrote:
> Hi,
> Did anyone built parallel and large scale X12 EDI parser to XML or JSON using 
> Spark?
> Thanks,
> Aakash.


Reply via email to