3

我正在处理大量 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 或类似的东西将这些数据扁平化为更多的表格格式吗?或者是否值得花时间扩展 Hive 以便能够通过自定义 SerDer 或 InputFormat 进行查询?

4

2 回答 2

4

您应该能够通过RegExSerde相对轻松地使用正则表达式处理 HL7。话虽如此,一旦您了解了 objectinspector 和其他 Hive 管道,编写 serde 并不是非常困难(几个小时)。自定义 serde 也可以自动提供字段名称,但这是一个小好处。单独的解析步骤是多余的。

于 2012-11-28T00:37:49.793 回答
1

您可以使用 Hadoop API 编写自定义 InputFormat 和 RecordReader ...请参阅本文开始: http ://bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/

于 2013-01-08T16:49:43.197 回答