Hive 11、Hive嵌入Python
Hive嵌入Python
Python的输入输出都是\t为分隔符,否则会出错,python脚本输入print出规定格式的数据
用法为先add file,使用语法为TRANSFORM (name, items) USING 'python test.py' AS (name string, item1 string,item2 string,item3 string),这里后面几个字段对应python的类型
下面是一个将一列转成多列表小案例:
create table test (name string,items string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
LOAD DATA local INPATH '/opt/data/tt.txt' OVERWRITE INTO TABLE test ;
tt.txt的内容:
tom shu fa,wei qi,chang ge
jack game,kan shu,shang wang
lusi lv you,guang jie,gou wu
表2:
create table test2 (name string,item1 string,item2 string,item3 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
-- 将python脚本上传到Hive
Hive> add file /root/test.py
-- 将结果放到test2中
INSERT OVERWRITE TABLE test2 SELECT TRANSFORM (name, items)
USING 'python test.py'
AS (name string, item1 string,item2 string,item3 string)
FROM test;
#!/usr/bin/python import sys
for line in sys.stdin:
line = line.strip()
name,it = line.split('\t')
count = it.count(',')+1
for i in range(0,3-count):
it = it+',NULL'
result = it.split(',')[0:3]
print '%s\t%s'%(name,'\t'.join(result))
结果:
-- 表1
hive> select * from test;
OK
tom shu fa,wei qi,chang ge
jack game,kan shu,shang wang
lusi lv you,guang jie,gou wu
Time taken: 0.07 seconds, Fetched: 3 row(s)
hive> desc test2;
OK
name string
item1 string
item2 string
item3 string
Time taken: 0.141 seconds, Fetched: 4 row(s)
-- 表2
hive> select * from test2;
OK
tom shu fa wei qi chang ge
jack game kan shu shang wang
lusi lv you guang jie gou wu
Time taken: 1.368 seconds, Fetched: 3 row(s)
Hive 11、Hive嵌入Python的更多相关文章
- Hive之 hive的三种使用方式(CLI、HWI、Thrift)
Hive有三种使用方式——CLI命令行,HWI(hie web interface)浏览器 以及 Thrift客户端连接方式. 1.hive 命令行模式 直接输入/hive/bin/hive的执行程 ...
- C++嵌入Python,以及两者混用
以前项目中是C++嵌入Python,开发起来很便利,逻辑业务可以放到python中进行开发,容易修改,以及功能扩展.不过自己没有详细的研究过C++嵌入python的细节,这次详细的研究一下.首先我们简 ...
- ubuntu下搭建hive(包括hive的web接口)记录
Hive版本 0.12.0(独立模式) Hadoop版本 1.12.1 Ubuntu 版本 12.10 今天试着搭建了hive,差点迷失在了网上各种资料中,现在把我的经验分享给大家,亲手实践过,但未必 ...
- Hive 文件格式 & Hive操作(外部表、内部表、区、桶、视图、索引、join用法、内置操作符与函数、复合类型、用户自定义函数UDF、查询优化和权限控制)
本博文的主要内容如下: Hive文件存储格式 Hive 操作之表操作:创建外.内部表 Hive操作之表操作:表查询 Hive操作之表操作:数据加载 Hive操作之表操作:插入单表.插入多表 Hive语 ...
- (hive)hive优化(转载)
1. 概述 1.1 hive的特征: 可以通过SQL轻松访问数据的工具,从而实现数据仓库任务,如提取/转换/加载(ETL),报告和数据分析: 它可以使已经存储的数据结构化: 可以直接访问存储在Apac ...
- freeswitch嵌入python脚本
操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 python版本:2.7.9 开启python模块 安装python lib库 apt-get install pyt ...
- 【hive】——Hive四种数据导入方式
Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...
- 在应用中嵌入Python:转
在应用中嵌入Python 前面的章节讨论如何扩展Python,如何生成适合的C库等.不过还有另一种情况:通过将Python嵌入C/C++应用以扩展程序的功能.Python嵌入实现了一些使用Python ...
- [Hive - LanguageManual] Hive Concurrency Model (待)
Hive Concurrency Model Hive Concurrency Model Use Cases Turn Off Concurrency Debugging Configuration ...
随机推荐
- javascript对象的理解
从代码中体会javascript中的对象: <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...
- class 类(4)
要将类实例化,然后通过实例来调用类的方法(函数).在此,把前面经常做的这类事情概括一下: 方法是类内部定义函数,只不过这个函数的第一个参数是self.(可以认为方法是类属性,但不是实例属性) 必须将类 ...
- hdu 4666 Hyperspace
曼哈顿距离,两个点设为(x1,y1),(x2,y2),其距离为|x1-x2|+|y1-y2| #include <cstdio> #include <set> #include ...
- 找工作笔试面试那些事儿(10)---SQL语句总结
SQL语句中常用关键词及其解释如下: 1)SELECT 将资料从数据库中的表格内选出,两个关键字:从 (FROM) 数据库中的表格内选出 (SELECT).语法为 SELECT "栏位名&q ...
- CentOS7 安装LNMP(Linux+Nginx+MySQL+PHP)
由于工作须要,须要学习php,本来想安装lamp的可是考虑到如今nginxserver有良好的性能且应用广泛. 这里我决定搭建Linux(CentOS7+Nginx+MySQL+PHP)下的webse ...
- git config配置文件 (共有三个配置文件)
设置 git status的颜色. git config --global color.status auto 一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境.你只需要做这些设置一 ...
- HTML与CSS入门——第十一章 在网页中使用图像
知识点: 1.在网页上放置图像的方法 2.用文本描述图像的方法 3.指定图像高度和宽度的方法 4.对齐图像的方法 5.将图像转换为俩接的方法 6.使用背景图像的方法 7.使用图像映射的方法 11.1 ...
- ASP.Net MVC与WebForm的区别
- CSS 设计模式一 元素
1.background 内置 是一种CSS内置设计模式,支持在元素下显示图片 HTML <!DOCTYPE html> <html lang="en"> ...
- CSS凹型导航按钮
一般需求,圆角看起来更加舒服,但是下面直角略显生硬 于是设计师有了下面的需求,下面加上小凹型: 凹型?凹型?凹型?有点变态,这怎么实现........... 图片肯定是最先考虑到的,CSS实现有貌似有 ...