我正在处理大量以2.x格式化的hl7消息。该格式是管道分隔格式,其中每个格式大致如下(虚拟数据):
MSH|^~\&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^|||||||||| ||2688684|||||||||||||||||||||||||199912271408||||||002376853
我想使用hive或类似的工具对这些数据进行大型查询/探索。我应该首先使用hparser或类似的工具将这些数据展平成更多的表格格式吗?或者,是否值得花时间扩展配置单元,以便能够通过自定义的serder或inputformat查询这个配置单元?
2条答案
按热度按时间5n0oy7gb1#
您应该能够通过regexserde相对容易地使用regex处理hl7。也就是说,编写一个serde并不是非常困难(几个小时),一旦你搜索了objectinspector和其他配置单元管道,自定义serde也可以自动提供字段名,但这只是一个小好处。另一个单独的解析步骤是overkill。
mxg2im7a2#
您可以使用hadoop api编写自定义inputformat和recordreader…请参阅本文以开始:http://bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/