假设我们想要用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建表语句相关推荐

  1. 使用java代码编写脚本,把oracle建表语句变成hive建表语句

    使用java代码编写脚本,把oracle建表语句变成hive建表语句 java代码 测试oracle.sql 生成hive创表语句 java代码 import java.io.File; import ...

  2. 1.python 根据 oracle字段名和类型 生成 hive建表语句

    一.问题 遇到一个场景,要根据oracle表结构创建hive表. 本来想写一个根据oracle信息和表名自动在hive中创建表的脚本.如果在集群运行,python操作oracle的cx_Oracle在 ...

  3. 小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter)

    本篇主要分享一个小技巧:为 Eclipse 设置链式调用的代码格式化(Formatter). 首先,我们要明白什么是链式调用,来看代码: AccountParam.builder().uid(uid) ...

  4. 使用java通过固定的excel模板自动生成数据库表的ddl建表语句

    有时候要建很多表或一个表有很多字段,一个个复制字段弄太麻烦了,为了提高点工作效率,写了个小工具通过固定的excel模板自动生成基础的ddl建表语句 maven依赖 <!--核心jar包--> ...

  5. java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...

    阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...

  6. oracle和mysql通用建表语句_mysql建表语句到oracle怎么写?

    mysql建表语句到oracle怎么写? CREATE TABLE `Advertisment` (  `AdId` int(8) NOT NULL auto_increment,  `AderId` ...

  7. java实体转为数据库建表语句

    java实体转为数据库建表语句 package com.mashibing.admin;import cn.hutool.core.text.StrBuilder; import cn.hutool. ...

  8. 独家 | 11个Python Pandas小技巧让你的工作更高效(附代码实例)

    作者:Shiu-TangLi 翻译:吴振东 校对:王雨桐 本文约1800字,建议阅读6分钟. 本文为你介绍Pandas隐藏的炫酷小技巧,我相信这些会对你有所帮助. 或许本文中的某些命令你早已知晓,只是 ...

  9. python输入10个数据_分享10个数据分析的小技巧(Python)

    一些小提示和小技巧可能是非常有用的,特别是在编程领域.有时候使用一点点黑客技术,既可以节省时间,还可能挽救"生命". 一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正 ...

最新文章

  1. pandas使用apply函数基于条件(if condition)生成新的数据列
  2. Spring Boot框架表达式注入漏洞
  3. 转-用qemu-nbd实现mount虚拟硬盘到Host上的功能
  4. 前端学习(1796):前端调试之html/css介绍
  5. sizeof你真的弄明白了吗?
  6. P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles(记忆化搜索)--- 89分
  7. (38)System Verilog类class复制详解
  8. 对python的意思_python的意思
  9. Chart 控件 for vs2008的安装
  10. 命名实体识别数据集构建
  11. java案例代码16-java正则表达式的使用
  12. 36. Valid Sudoku/37. Sudoku Solver - 数独问题-- backtracking 经典
  13. 浏览器加载、渲染过程总结
  14. 视频拍摄和剪辑经验分享|南京
  15. python建模库介绍:pandas与建模代码的结合,使用Patsy创建模型描述
  16. python工程师的职业规划_一名Python开发工程师的职业规划
  17. 一个月裂变50多万人?商城引流模式玩法——分享购
  18. 小程序中maring-top、maring-left、maring-right、maring-bottom失效/没有用的原因及解决方案
  19. 如果只定一个指标,市场运营的考核指标应该是什么?
  20. W ndows7怎么进入BlOS,Windows7旗舰版进不了bios界面的详解教程

热门文章

  1. Selenium_WebDriver操作iFrame日历框和复选框_Java
  2. 看AppStore评价
  3. PHP点击跳转QQ,thinkphp3.2 获取QQconnect Login 跳转到的地址值
  4. python图像分类代码_python实现支持向量机遥感图像分类
  5. java 保存后中文乱码_sublime编写java程序保存编译,运行之后中文显示乱码
  6. Idea debug时报错:Command line is too long
  7. vue click同时传入事件对象和自定义参数
  8. react控制元素的显示或隐藏
  9. Chrome 控制台console的用法
  10. java设计模式之设计原则⑤迪米特原则