python文件名:getOperators.py,代碼以下:node
#!/usr/bin/env python # -*- coding:UTF-8 -*- import sys import re ''' python 獲取手機運營商 ''' if __name__ == '__main__': isChinaMobile = "^134[0-8]\\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\\d{7,8}$"; # 移動 isChinaUniom = "^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\\d{7,8}|$"; # 聯通 isChinaTelcom = "^(?:133|153|1700|1701|1702|177|173|18[019])\\d{7,8}$"; # 電信 regexMobile = re.compile(isChinaMobile, flags=0) regexUniom = re.compile(isChinaUniom, flags=0) regexTelcom = re.compile(isChinaTelcom, flags=0) for line in sys.stdin: tel = line.strip() if regexMobile.match(tel): print "中國移動" elif regexUniom.match(tel): print "中國聯通" elif regexTelcom.match(tel): print "中國電信" else: print "未知"
格式 hdfs dfs -put 本地路徑 hdfs路徑python
hdfs dfs -put /data/scripts/python_udf/getOperators.py /user/webuser/hive_udf/python
在hive命令行運行下面命令。 注意:m102 是namenode的主機名,這兒需改爲你本身的。web
add file hdfs://m102/user/webuser/hive_udf/python/getOperators.py;
使用格式: transform(字段名) using "python文件名"sql
select transform(telephone) using "getOperators.py" as (yys) from m_uc_account
一個session斷開後,下一次新的session須要從新把python文件添加hive系統中。shell