zoukankan      html  css  js  c++  java
  • hive 导出数据到本地

    有时候需要将hive库中的部分数据导入至本地,这样子做可视化和小规模的数据挖掘实验都是比较方便的。数据导入至本地的HQL语法如下:
    INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1;
    但是hive对字段分隔时默认使用的分隔符是^A,使用文本编辑器打开文件显示出来就是乱码,同时,后续提取字段值时需要指定这个特殊的分隔符,在python中使用line.split('x01')来进行切分在java中split("\u0001")来进行切分。

    网上看到的方案都是上述这种使用默认分隔符进行切分的,不管是数据查看还是程序调试,都不太方便。但是,既然hive支持在建表的时候指定字段分隔符,hive在数据导出时应该也支持的。HQL建表时指定分隔符的语法为:

    	CREATE TABLE u_data (
      		userid INT,
      		movieid INT,
      		rating INT,
      		unixtime STRING)
    	ROW FORMAT DELIMITED
    	FIELDS TERMINATED BY '	';
    想必在数据导出时,应该可以ROW FORMAT DELIMITED FIELDS TERMINATED BY 的方式来指定我们自定义的分隔符。于是,实验了一把,结果如我所愿。

    用户指定分隔符来进行数据导出,比如我们会使用 进行字段分割,那么HQL语法如下:
    INSERT OVERWRITE [LOCAL] DIRECTORY directory1 

    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' 

    select_statement1;

    最后,只有在hive0.12及以上版本才支持该语法哦,hive0.12以下版本的,请自行探索吧。

    原文链接: https://blog.csdn.net/zbc1090549839/article/details/53782367
     
     
  • 相关阅读:
    Aspnet_regsql.exe命令行使用小结
    ListView用法学习
    < %=...%>< %#... %>< % %>< %@ %>
    jQuery入门简介
    oracle基础琐碎总结删除数据
    WindowsPhone基础琐碎总结数据绑定(一)
    ADO.NET基础琐碎总结参数化查询
    oracle基础琐碎总结Where和Having的区别与联系
    第一次使用 Windows Live Writer
    WindowsPhone基础琐碎总结数据绑定(二)
  • 原文地址:https://www.cnblogs.com/earendil/p/9157133.html
Copyright © 2011-2022 走看看