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 ...
随机推荐
- Bootstrap--本地安装使用
1.到官网下载:http://v2.bootcss.com 2.下载后是一个压缩文件,把它放在相应的工作目录下,然后解压. 3.新建一个测试文件,然后导入两个文件.
- Spark Yarn-cluster与Yarn-client
摘要 在Spark中,有Yarn-Client和Yarn-Cluster两种模式可以运行在Yarn上,通常Yarn-cluster适用于生产环境,而Yarn-Cluster更适用于交互,调试模式,以下 ...
- Makefile学习(三)执行make
9 执行make 一般方法:make. 某些情况:1.可能需要使用make更新一部分过时文件而不是全部 2.需要使用另外的编译器或者重新定义编译选项 3.只需要查看哪些文件被修改,不需要重新编译 所以 ...
- Android 自定义UI--指南针
有了之前的基础,下面开始实现一个简单的指南针.首先来看一下效果图, 我们可以粗略将这个指南针分为三个部分,一是圆形背景,二是刻度,三是文本.那么在写代码的时候,就可以声明三个Paint画笔来画以上三个 ...
- Samba的ADS域模式和RPC域模式
对于Samba服务器,有两种域安全模式,加入到Windows 2000或者Windows 2003域控制器(DC‘s)控制的域中: RPC 模式 RPC(远程过程调用)模式的域成员是"NT4 ...
- C# 中文转拼音类
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SU { ...
- WebApi2官网学习记录---批量处理HTTP Message
原文:Batching Handler for ASP.NET Web API 自定义实现HttpMessageHandler public class BatchHandler : HttpMess ...
- iOS_SN_BlueTooth (二)iOS 连接外设的代码实现
原文:http://www.cocoachina.com/ios/20150917/13456.html?utm_source=tuicool&utm_medium=referral 上一篇文 ...
- linux install zh_CN(ubuntu)
cd /usr/share/locales sudo ./install-language-pack zh_CN
- javaScript中获取鼠标位置的理解
获取鼠标坐标值的总结为了避免混淆知识点 通过<javaScript高级程序设计>查到这些 event.clientX event.clientY event.pageX event.pag ...