Hive——巧用transform处理复杂的字符串问题
来源:互联网 发布:淘宝新店怎么参加活动 编辑:程序博客网 时间:2024/06/05 00:17
相比于Map-Reduce,Hive对数据的处理相对简单,但是Hive本身提供的函数,对于处理复杂的字符串问题,就显得不是很方便,此时,可以借助transform,引入外界的Python程序对字符串进行处理。
transform
transform的基本用法为:
transform中的值作为输入, 然后传递给python脚本,最后经过python的处理后,输出想要得到的字符串格式。
transform的基本语法为:
select transform(intput columns)using 'python *.py'as (output columns)
注意:在利用本地的python处理时,首先需要
add file *.py;
实例
假设目前我们有如下的一些数据:
需要取出以分号“;”分隔的倒数第二位。实际的代码如下:
- Hive的代码:
function create_table(){ sql_create_table_1="drop table if exists ${table_name_deal}; create table if not exists ${table_name_deal}( deal string ) row format delimited fields terminated by '\t' lines terminated by '\n' stored as rcfile location '${table_path}/${table_name_deal}';" hive -e"${sql_create_table_1}"}function data_deal(){ deal_sql="add file deal.py; insert overwrite table ${table_name_deal} select a.deal from (select transform(match_id) using 'python deal.py' as (deal) from ${table_name_sel} ) a;" hive -e"${deal_sql}"}
- python脚本
#!/usr/bin/python#coding:UTF-8import sysfor line in sys.stdin: lines = line.strip().split(";") if len(lines) < 10: continue deal = lines[-2] print deal
阅读全文
1 0
- Hive——巧用transform处理复杂的字符串问题
- hive transform脚本书写问题
- 处理复杂问题的方法
- 巧用 row_number 处理复杂问题
- (7)hadoop学习——hive的复杂数据类型
- hive中自定义JsonSerde处理复杂结构的json数据
- hive的Transform定义函数
- Hive的复杂数据类型
- 【剑指offer】4.4分解让复杂问题简单化——面试题28:字符串的排列
- 一个稍复杂的字符串截取问题
- 异常处理,简单而又复杂的问题
- 异常处理,简单而又复杂的问题
- 异常处理,简单而又复杂的问题
- Hive处理JSON字符串
- hive 查询 字符串处理
- 复杂数据类型——字符串
- HIVE的transform函数的使用
- 字符串的处理问题
- 算法谜题78 直三格板平铺
- Java 8并发教程:同步和锁定
- sprintf、snprintf、strcpy、strncpy
- win7系统网页总是卡怎么解决 win7系统网页打不开解决办法
- nlp-形式语言与自动机-ch10-统计机器翻译
- Hive——巧用transform处理复杂的字符串问题
- 浏览器兼容 2 常见兼容性问题及解决方案
- winDbg调试环境搭建
- 对一个5位数的任意整数,求出其降序数。例如,整数是82319,则其降序数是98321。算法提示:将整数的各位数分解到一维整型数组a中,再将a数组中的元素按降序排序,最后输出a数组元素值。
- XCode写C++类注意
- UML常用图的几种关系的总结
- android 侧滑菜单
- 计算机文化学习笔记4
- Python json