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

2024-06-02 17:58

本文主要是介绍hive输出格式转化,本例以json为例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

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

 
  1. hive> select get_json_object(json.value,'$.hour'),get_json_object(json.value,"$.channel") from json limit 10;

  2. Total MapReduce jobs = 1

  3. Launching Job 1 out of 1

  4. Number of reduce tasks is set to 0 since there's no reduce operator

  5. Starting Job = job_201304271626_0032, Tracking URL = http://linjianke:50030/jobdetails.jsp?jobid=job_201304271626_0032

  6. Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=192.168.10.44:8021 -kill job_201304271626_0032

  7. 2013-05-15 10:07:11,102 Stage-1 map = 0%, reduce = 0%

  8. 2013-05-15 10:07:15,116 Stage-1 map = 100%, reduce = 0%

  9. 2013-05-15 10:07:17,125 Stage-1 map = 100%, reduce = 100%

  10. Ended Job = job_201304271626_0032

  11. OK

  12. 2013-04-07 16 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  13. 2013-04-07 22 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  14. 2013-04-08 00 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  15. 2013-04-08 01 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  16. 2013-04-09 01 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  17. 2013-04-09 07 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  18. 2013-04-09 16 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  19. 2013-04-09 17 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  20. 2013-04-09 21 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  21. 2013-04-10 01 f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8

  22. 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;

 输出为

 
  1. {"aa":"2013-04-07 16","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  2. {"aa":"2013-04-07 22","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  3. {"aa":"2013-04-08 00","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  4. {"aa":"2013-04-08 01","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  5. {"aa":"2013-04-09 01","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  6. {"aa":"2013-04-09 07","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  7. {"aa":"2013-04-09 16","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  8. {"aa":"2013-04-09 17","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  9. {"aa":"2013-04-09 21","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

  10. {"aa":"2013-04-10 01","bb":"f32d98f8-8ac5-11e2-8a47-bc305bf4bcb8"}

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

 
  1.  
  2. #!/usr/bin/python

  3. #coding:utf8

  4. import sys

  5. for line in sys.stdin:

  6. if len(line) == 0:

  7. #print 'end'

  8. break

  9. if line.count('\n') == len(line):

  10. #print 'continue'

  11. continue

  12. line=line.strip('\n')

  13. arr=line.split('\t')

  14. if len(arr) != len(sys.argv) - 1:

  15. print 'error'

  16. break

  17. for i in range(0,len(arr)):

  18. arr[i]='"%s":"%s"' % (sys.argv[i+1],arr[i])

  19. content = ','.join(arr)

  20. print '{%s}' % content

这篇关于hive输出格式转化,本例以json为例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024688

相关文章

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.