小技巧:用python迅速打印Java写 的Flink代码中的hive建表语句
假设我们想要用Flink对hive进行读写,
并且其中一段代码如下:
// 如果hive中已经存在了相应的表,则这段代码省略String hiveSql = "CREATE external TABLE fs_table (\n" +" user_id STRING,\n" +" order_amount DOUBLE" +") partitioned by (dt string,h string,m string) " +"stored as ORC " +"TBLPROPERTIES (\n" +" 'partition.time-extractor.timestamp-pattern'='$dt $h:$m:00',\n" +" 'sink.partition-commit.delay'='0s',\n" +" 'sink.partition-commit.trigger'='partition-time',\n" +" 'sink.partition-commit.policy.kind'='metastore'" +")";tEnv.executeSql(hiveSql);
显然这个代码和原有的flink 代码耦合性太强,
我们希望抽离出来,在hive的客户端来运行.
为了调试打印上面的这个语句显然用java太麻烦了.
用python代码printsql.py如下(上面的整个代码直接复制下来,然后+改成\即可):
a="CREATE external TABLE fs_table (\n" \" user_id STRING,\n" \" order_amount DOUBLE" \") partitioned by (dt string,h string,m string) " \"stored as ORC " \"TBLPROPERTIES (\n" \" 'partition.time-extractor.timestamp-pattern'='$dt $h:$m:00',\n" \" 'sink.partition-commit.delay'='0s',\n" \" 'sink.partition-commit.trigger'='partition-time',\n" \" 'sink.partition-commit.policy.kind'='metastore'" \")"
print(a)
python printsql.py后得到sql语句,把该sql语句在hive中运行如下:
0: jdbc:hive2://Desktop:10000> CREATE external TABLE fs_table (
. . . . . . . . . . . . . . .> user_id STRING,
. . . . . . . . . . . . . . .> order_amount DOUBLE) partitioned by (dt string,h string,m string) stored as ORC TBLPROPERTIES (
. . . . . . . . . . . . . . .> 'partition.time-extractor.timestamp-pattern'='$dt $h:$m:00',
. . . . . . . . . . . . . . .> 'sink.partition-commit.delay'='0s',
. . . . . . . . . . . . . . .> 'sink.partition-commit.trigger'='partition-time',
. . . . . . . . . . . . . . .> 'sink.partition-commit.policy.kind'='metastore')
. . . . . . . . . . . . . . .>
. . . . . . . . . . . . . . .> ;
No rows affected (4.864 seconds)
建表顺利完成
小技巧:用python迅速打印Java写 的Flink代码中的hive建表语句相关推荐
- 使用java代码编写脚本,把oracle建表语句变成hive建表语句
使用java代码编写脚本,把oracle建表语句变成hive建表语句 java代码 测试oracle.sql 生成hive创表语句 java代码 import java.io.File; import ...
- 1.python 根据 oracle字段名和类型 生成 hive建表语句
一.问题 遇到一个场景,要根据oracle表结构创建hive表. 本来想写一个根据oracle信息和表名自动在hive中创建表的脚本.如果在集群运行,python操作oracle的cx_Oracle在 ...
- 小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter)
本篇主要分享一个小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter). 首先,我们要明白什么是链式调用,来看代码: AccountParam.builder().uid(uid) ...
- 使用java通过固定的excel模板自动生成数据库表的ddl建表语句
有时候要建很多表或一个表有很多字段,一个个复制字段弄太麻烦了,为了提高点工作效率,写了个小工具通过固定的excel模板自动生成基础的ddl建表语句 maven依赖 <!--核心jar包--> ...
- java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...
阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...
- oracle和mysql通用建表语句_mysql建表语句到oracle怎么写?
mysql建表语句到oracle怎么写? CREATE TABLE `Advertisment` ( `AdId` int(8) NOT NULL auto_increment, `AderId` ...
- java实体转为数据库建表语句
java实体转为数据库建表语句 package com.mashibing.admin;import cn.hutool.core.text.StrBuilder; import cn.hutool. ...
- 独家 | 11个Python Pandas小技巧让你的工作更高效(附代码实例)
作者:Shiu-TangLi 翻译:吴振东 校对:王雨桐 本文约1800字,建议阅读6分钟. 本文为你介绍Pandas隐藏的炫酷小技巧,我相信这些会对你有所帮助. 或许本文中的某些命令你早已知晓,只是 ...
- python输入10个数据_分享10个数据分析的小技巧(Python)
一些小提示和小技巧可能是非常有用的,特别是在编程领域.有时候使用一点点黑客技术,既可以节省时间,还可能挽救"生命". 一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正 ...
最新文章
- pandas使用apply函数基于条件(if condition)生成新的数据列
- Spring Boot框架表达式注入漏洞
- 转-用qemu-nbd实现mount虚拟硬盘到Host上的功能
- 前端学习(1796):前端调试之html/css介绍
- sizeof你真的弄明白了吗?
- P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles(记忆化搜索)--- 89分
- (38)System Verilog类class复制详解
- 对python的意思_python的意思
- Chart 控件 for vs2008的安装
- 命名实体识别数据集构建
- java案例代码16-java正则表达式的使用
- 36. Valid Sudoku/37. Sudoku Solver - 数独问题-- backtracking 经典
- 浏览器加载、渲染过程总结
- 视频拍摄和剪辑经验分享|南京
- python建模库介绍:pandas与建模代码的结合,使用Patsy创建模型描述
- python工程师的职业规划_一名Python开发工程师的职业规划
- 一个月裂变50多万人?商城引流模式玩法——分享购
- 小程序中maring-top、maring-left、maring-right、maring-bottom失效/没有用的原因及解决方案
- 如果只定一个指标,市场运营的考核指标应该是什么?
- W ndows7怎么进入BlOS,Windows7旗舰版进不了bios界面的详解教程
热门文章
- Selenium_WebDriver操作iFrame日历框和复选框_Java
- 看AppStore评价
- PHP点击跳转QQ,thinkphp3.2 获取QQconnect Login 跳转到的地址值
- python图像分类代码_python实现支持向量机遥感图像分类
- java 保存后中文乱码_sublime编写java程序保存编译,运行之后中文显示乱码
- Idea debug时报错:Command line is too long
- vue click同时传入事件对象和自定义参数
- react控制元素的显示或隐藏
- Chrome 控制台console的用法
- java设计模式之设计原则⑤迪米特原则