python脚本使用hive正则表达式斜杠问题
生活随笔
收集整理的這篇文章主要介紹了
python脚本使用hive正则表达式斜杠问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 目標:提取字符串中長度5-7的數字
- python腳本hive樣式:import datetimedata_dic = {'table_name':'table_name','data_table_name':'data_table_name','data_time':int(datetime.date.today().strftime('%Y%m%d'))-1 } sql = """insert table {table_name}(idadtag)select id,case when regexp_instr(adtag,'\\\\d{{5,7}}',1,1,0)>0 then regexp_extract(adtag,'(\\\\d{{5,7}})',1)else adtag end as adtagfrom {data_table_name}where ftime = {data_time} """.format(**data_dic)
正常來說,正則pat里面只需要傳入’\d{5,7}‘就可以了,一個斜杠最后用了四個斜杠才生效,轉化是這樣的:
第一層:python字符串轉譯:\\——\
第二層:sql字符串轉譯:\——
這樣就四個斜杠最后變成了兩個斜杠(python轉義),兩個斜杠再變成一個斜杠(sql轉義);另外一個問題,python字符串format方法轉譯問題,最后用了雙’{}’
總結
以上是生活随笔為你收集整理的python脚本使用hive正则表达式斜杠问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能网联先导区道路交叉口车路协同系统设计
- 下一篇: websocket python爬虫_p