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

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON: