嗨,我正在寻找一种方法来加载大量的json文件,每行一个每行的格式如下:
'{id :"id123", "c1":"v1", "c2":"v2", "c3" :"v3"...}'
每个json文档可以有未知数量的字段。有没有办法在Pig身上做到这一点?我想在hbase上将字段加载到单独的列中。
eqfvzcg81#
你可能想使用自定义项。例如python和您提供的:自定义项:
from com.xhaus.jyson import JysonCodec as json from com.xhaus.jyson import JSONDecodeError @outputSchema( "rels:{t:('{id:chararray,c1:chararray, c2:chararray, c3:chararray...}')}" ) def parse_json(line): try: parsed_json = json.loads(line) except: return None return tuple(parsed_json.values())
清管器:
REGISTER 'path-to-udf.py' USING jython AS py_udf ; raw_data = LOAD 'path-to-your-data' USING PigStorage('\n') AS (line:chararray) ; -- Parse lines using UDF parsed_data = FOREACH cleanRawLogs GENERATE FLATTEN(py_f.parse_json(line)) ;
1条答案
按热度按时间eqfvzcg81#
你可能想使用自定义项。例如python和您提供的:
自定义项:
清管器: