【云计算】json日志文件通过spark转存成parquet方案解析
小标 2018-12-13 来源 : 阅读 1992 评论 0

摘要:本文主要向大家介绍了【云计算】json日志文件通过spark转存成parquet方案解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】json日志文件通过spark转存成parquet方案解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。


收集的业务数据为json格式,准备利用parquet 格式重新存储到hive表,以节约空间并方便后续通过spark 或 hive 进行分析查询。

(示例代码是用python)

具体步骤是:

1.用spark读取json数据后,得到一个dataframe


path = '/xx/xxx/xxx.json'
df = sqlContext.read.json(path)


2.dataframe 经过filter 、select 等操作再以parquet格式写入hdfs指定路径



 

df = df.filter(‘xxx’).select(‘xxx’)



3.目录是按天分区,类似 /parquet/xxxxxx/dt=2017-06-06 这样



 

df.write.parquet(“/parquet/xxxxxx/dt=2017-06-06”,”overwrite”)



4.建立对应hive表


CREATE  TABLE xxxxxx(
`xx` string, 
`xxx` bigint,
`xxxxx` string
... ...
...

partitioned by (dt string ) 
STORED as PARQUET 
LOCATION '/parquet/xxxxxx'; 


5.这样建立完以后,hive还需要执行一步数据加载,才能查到数据


load data  inpath '/parquet/xxxxxx/dt=2017-06-06' into table xxxxxx partition(dt='2017-06-06')

或者

alter table xxxxxx add partition(dt='2017-06-06') location '/parquet/xxxxxx/dt=2017-06-06';


load 和 alter 的主要区别是:

load 会创建分区目录,并移动数据到分区下,alter 的方式不会创建分区目录,也不会移动数据。

个人场景alter 方式添加分区更适合。


把json 存储为parquet,不但可以节省50%左右的存储空间,更方便后续工作中的数据查询,并且查询效率比文本方式更高。


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved