用Python写了个用LOAD命令将文件导入Hive的程序,开始代码写成下面这样:

 def loadToHive(bakFilePath, tbName):
try:
transport = TSocket.TSocket(HIVE_SERVER, HIVE_PORT)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ThriftHive.Client(protocol)
transport.open()
client.execute("LOAD DATA LOCAL INPATH '" + bakFilePath + "' INTO TABLE " + tbName)
print "LOAD DATA LOCAL INPATH '" + bakFilePath + "' INTO TABLE " + tbName
transport.close()
except Thrift.TException, tx:
print '%s' % (tx.message) def test():
try:
bak = file( 'tmp.bak', 'w') #需要打开文件处理下
........ #处理文件
loadToHive('tmp.bak', 'test') #load到test表
except IOError as err:
print('File Error: '+ str(err))
finally:
bak.close()

运行发现hive提示:

Copying data from file:****/tmp.bak
Copying file: file:****/tmp.bak
Loading data to table default.test100
OK,

即插入成功,但是,去hive查test表发现根本没load进去!

后来发现需要在执行 loadToHive('tmp.bak', 'test') 前关闭文件,把bak.close()放到 loadToHive('tmp.bak', 'test') 前面就成功导入了。

看来hive判断是否导入成功是有问题的啊。

最新文章

  1. jQuery中的Ajax - Codeigniter版本
  2. Replace conditional with Polymorphism
  3. Linux学习笔记(4)-远程登录
  4. 禅道 Rest API 开发
  5. Android之滑屏动画和自定义控件
  6. Javascript format方法
  7. POJ 2349 Arctic Network (最小生成树)
  8. 把CheckedListBoxControl设置为单选框
  9. HTMLParser获取属性名
  10. O-C相关-09-id 类型与应用
  11. Unity3d Fast Indirect illumination Using Two Virtual Spherical Gaussian Lights-Square Enix论文
  12. Elastalert安装及使用
  13. PostgreSQL 创建触发器 Trigger
  14. fedora 28 重新生成 /boot/grub2/grub.cfg
  15. Delphi实现树型结构
  16. Levenberg-Marquardt 的 MATLAB 代码
  17. SWD 接口电路
  18. Dynamics 365 可编辑子网格的字段禁用不可编辑
  19. Hadoop生态圈-hive编写自定义函数
  20. Java基础之JDK的下载与安装

热门文章

  1. PAT_A1155#Heap Paths
  2. TensorFlow实战笔记(17)---TFlearn
  3. 【剑指Offer】12、数值的整数次方
  4. Jquery向页面append新元素之后,如何解决事件的绑定问题?
  5. 2019-04-16 sql tran and try catch :
  6. 2013年工作中遇到的20个问题(Bug):161-180
  7. 学习EXTJS6(8)基本功能-表单的基础表字段Ext.form.field.Basic
  8. 0823关于整理MySQL死锁
  9. asp.net--WebService知识点
  10. xtrabackup增量备份mysql +MHA