小标
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
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号