`

hive输出格式转化,本例以json为例

 
阅读更多

hive默认是以tab为分隔符,分隔各个输出字段,如

hive> select get_json_object(json.value,'$.hour'),get_json_object(json.value,"$.channel") from json limit 10;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_201304271626_0032, Tracking URL = http://linjianke:50030/jobdetails.jsp?jobid=job_201304271626_0032
Kill Command = /usr/lib/hadoop/bin/hadoop job  -Dmapred.job.tracker=192.168.10.44:8021 -kill job_201304271626_0032
2013-05-15 10:07:11,102 Stage-1 map = 0%,  reduce = 0%
2013-05-15 10:07:15,116 Stage-1 map = 100%,  reduce = 0%
2013-05-15 10:07:17,125 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201304271626_0032
OK
2013-04-07 16	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-07 22	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-08 00	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-08 01	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-09 01	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-09 07	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-09 16	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-09 17	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-09 21	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
2013-04-10 01	f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8
Time taken: 9.531 seconds

 

因为业务需要,蒋输出转为json格式,可以用hive提供的transform函数

 

hive> select transform(get_json_object(json.value,'$.hour'),get_json_object(json.value,"$.channel")) using '/usr/bin/python transform.py aa bb' as (result string) from json limit 10;

 输出为

{"aa":"2013-04-07 16","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-07 22","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-08 00","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-08 01","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-09 01","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-09 07","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-09 16","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-09 17","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-09 21","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}
{"aa":"2013-04-10 01","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

 python脚本:对python还不大熟悉,写的可能比较搓

#!/usr/bin/python
#coding:utf8
import sys
for line in sys.stdin:
    if len(line) == 0:
        #print 'end'
        break
    if line.count('\n') == len(line):
        #print 'continue'
        continue
    line=line.strip('\n')
    arr=line.split('\t')
    if len(arr) != len(sys.argv) - 1:
        print 'error'
        break
    for i in range(0,len(arr)):
        arr[i]='"%s":"%s"' % (sys.argv[i+1],arr[i])
    content = ','.join(arr)
    print '{%s}' % content

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    hive解析json格式数据所需jar包

    hive解析json时所需jar包。具体使用: add jar ../../../target/json-serde-1.3-jar-with-dependencies.jar; CREATE TABLE json_nested_test ( country string, languages array, religions map,array<int>>) ...

    hive,json格式传送,加载数据

    6. **性能优化**:由于 JSON 数据解析相对较慢,为了提高性能,可以考虑预处理数据,如将 JSON 转换为 Parquet 或 ORC 格式,这两种格式都是 Hive 支持的列式存储格式,能显著提升查询速度。 7. **注意事项**:使用...

    hive支持json格式的数据.docx

    Hive 支持 JSON 格式的数据 Hive 是一个基于 Hadoop 的数据仓库工具,支持存储和处理各种格式的数据。JSON 是一种广泛使用的数据交换格式,越来越多的应用程序使用 JSON 格式来存储和交换数据。Hive 支持完全和不...

    Hive-JSON-Serde-1.3.8.zip

    Hive-JSON-Serde是专为Hive设计的一个开源项目,用于解析和处理JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web服务和NoSQL数据库中。由于Hive默认不支持JSON,因此...

    06.hive中的json解析函数--json-tuple.mp4

    06.hive中的json解析函数--json-tuple.mp4

    hive-json-schema最新源代码

    hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema最新源代码hive-json-schema...

    hive支持json格式的数据.pdf

    "Hive 支持 JSON 格式数据处理详解" Hive 是一个基于 Hadoop 的数据仓库工具,支持多种数据格式,包括 JSON 格式数据。在这个资源中,我们将深入讲解 Hive 中如何支持完全和不完全 JSON 格式数据的处理。 完全 ...

    Hive-JSON-Serde-develop

    使用`Hive-JSON-Serde-develop`项目,我们可以更高效地处理JSON数据,而无需先将其转换为另一种格式。这对于那些数据源主要以JSON格式存在的项目来说非常有用,例如日志分析、社交媒体数据挖掘等场景。 总结一下,`...

    05.hive中如何自定义函数--json解析函数示例.mp4

    05.hive中如何自定义函数--json解析函数示例.mp4

    hive-json-serde-0.2.jar

    “hive-json-serde-0.2.jar”是一个针对Hive的JSON SerDe实现,它的主要功能是将JSON文档转换为Hive可以理解的表格结构,同时也能将Hive的表格数据转换回JSON格式。这个库使得Hive能够直接操作JSON格式的数据,无需...

    自然语言,数据清洗后存储成jsonl格式文件

    3. 将清洗后的数据转化为JSON格式,可以使用pandas的`to_dict`函数。 4. 将JSON对象写入JSONL文件,每行写入一个对象,可以使用Python的`write`函数逐行写入。 这种转换对于处理大规模自然语言数据尤其有用,因为...

    kettle批量插入hive2,解决表输出速度慢问题

    根据描述,“kettle在表输出到星环inceptor数据库时,由于选择了DB连接类型为Hadoop Hive2,并且在Kettle的big-data-plugin插件的源码中默认关闭了批量提交的功能”,这导致了在创建DB连接时,...

    (Hive输出)pentaho-big-data-kettle-plugins-hive-6.1.0.1-196

    (Hive输出)ETLDesigner\common\system\karaf\system\pentaho\pentaho-big-data-kettle-plugins-hive\6.1.0.1-196\下的文件。 (Hive输出)pentaho-big-data-kettle-plugins-hive-6.1.0.1-196。

    hive2.1.1中orc格式读取报数组越界错误解决方法

    在Hive 2.1.1版本中,ORC(Optimized Row Columnar)格式是一种高效的数据存储方式,尤其适用于大数据处理。它提供了压缩、索引和列式存储等特性,能够极大地提高查询性能。然而,有时候在使用ORC格式读取数据时,...

    hive-udf-处理JSON数组

    hive_udf_处理JSON数组

    Hive 对 Protobuf 序列化文件读取.zip

    为了在Hive中读取Protobuf序列化的文件,我们需要使用自定义的Protobuf SerDe,如本压缩包中的`hive-protobuf-serde-master`项目所示,这是一个专门为Hive设计的 Protobuf SerDe 实现。 使用Hive与Protobuf集成的...

    Hive-JSON-Serde:读取-为Apache Hive编写JSON SerDe

    该库使Apache Hive能够以JSON格式进行读写。 它包括对序列化和反序列化(SerDe)以及JSON转换UDF的支持。 特征 读取以JSON格式存储的数据 在INSERT INTO 期间将数据转换为JSON格式 支持JSON数组和映射 支持嵌套数据...

    Hive3.1.2编译源码

    使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...

Global site tag (gtag.js) - Google Analytics