orc parquet区别 spark_HIVE存储格式ORC、PARQUET对比

hive有三种默认的存储格式,TEXT、ORC、PARQUET。TEXT是默认的格式,ORC、PARQUET是列存储格式,占用空间和查询效率是不同的,专门测试过后记录一下。

一:建表语句差别

create table if not exists text(

a bigint

) partitioned by (dt string)

row format delimited fields terminated by '\001'

location '/hdfs/text/';

create table if not exists orc(

a bigint)

partitioned by (dt string)

row format delimited fields terminated by '\001'

stored as orc

location '/hdfs/orc/';

create table if not exists parquet(

a bigint)

partitioned by (dt string)

row format delimited fields terminated by '\001'

stored as parquet

location '/hdfs/parquet/';

其实就是stored as 后面跟的不一样

二:HDFS存储对比

parquet

orc

text

709M

275M

1G

687M

249M

1G

647M

265M

1G

三:查询时间对比

parquet

orc

text

36.451

26.133

42.574

38.425

29.353

41.673

36.647

27.825

43.938

四:文件如何生成

val sparkSession = SparkSession.builder().master("local").appName("pushFunnelV3").getOrCreate()

val javasc = new JavaSparkContext(sparkSession.sparkContext)

val nameRDD = javasc.parallelize(util.Arrays.asList("{'name':'zhangsan','age':'18'}", "{'name':'lisi','age':'19'}")).rdd;

sparkSession.read.json(nameRDD).write.mode(SaveMode.Overwrite).csv("/data/aa")

sparkSession.read.json(nameRDD).write.mode(SaveMode.Overwrite).orc("/data/bb")

sparkSession.read.json(nameRDD).write.mode(SaveMode.Overwrite).parquet("/data/cc")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值