Presto坑-insert overwrite & 传递参数替代方案

本文介绍了Presto不支持INSERT OVERWRITE操作的事实,提出了通过Hive建表、Presto查询结果存储为TXT文件再进行LOAD的替代方案。同时,针对Presto无法在.sql文件中传递参数的问题,建议使用shell脚本的sed命令进行变量替换来解决。
摘要由CSDN通过智能技术生成

一、presto不支持insert overwrite

Presto中不支持insert overwrite语法,只能先delete,然后insert into。
详见:Presto上使用SQL遇到的一些坑:https://segmentfault.com/a/1190000013120454

presto insert overwrite 替代方案:

1.hive建表
2.presto查询结果放到txt文件
3.load

hive -e"
use app;
CREATE external TABLE IF NOT EXISTS app.tablename(
	...
	m_pt bigint COMMENT '播放时长'
)
COMMENT '表描述'
PARTITIONED BY(dt STRING, testid STRING, type STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/dw/app/tablename';
"

# run sql
$presto --server uhadoop-op3raf-master1:28080 --catalog hive --schema adm --file $TO_SQL | sed 's/"//g' > $RESULT_LINK

# load data
hive -e "load data local inpath '${RESULT_LINK}' overwrite
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值