| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> hive transform Python采坑全纪录 -> 正文阅读 |
|
[大数据]hive transform Python采坑全纪录 |
最近在搞一些数据挖掘的东西。之前写的Python代码要放到hive上运行。记录一下踩的坑。 1. add、transform权限问题。 找了半天没有中文解决方案,只有英语解决方案,顺着找到了官方文档(英文):SQL Standard Based Hive Authorizationhttps://cwiki.apache.org/confluence/display/Hive/SQL+Standard+Based+Hive+Authorization#SQLStandardBasedHiveAuthorization-RestrictionsonHiveCommandsandStatements但是我照着改了配置,hive重启,然后崩了。。 hive只好退回改配置之前的版本。 后来同事改了个什么配置,现在又能用了。。 2. add file 的地址。 我add file 后面加本地服务器的地址貌似不行,需要先把文件上传到hdfs上。
再从hdfs上传到hive上。
3. Python debug之多文件问题。 用hive的transform跑代码,很崩溃的是你看不到报错信息,只知道是编译时出错还是运行时出错。 我用的debug方法是二分法,先用一个简单的.py文件把跑通,再把你的报错代码注释掉一部分。这样一步步通过控制变量的方法来定位bug。 我发现好像上传到hive上无法文件相互调用。还好这不是什么大问题,就把所有内容放到一个文件里去呗。 4. Python debug之编码问题。 hive默认的是ASCII码,这个码无法处理中文。所以如果要处理中文需要在文件头部加上以下代码:
5. Python正则表达式问题。 hive上自带的Python是2.7.5版的,需要注意它与Python3版本存在不同。而且装包什么的还很麻烦,因为装包要先装pip,装pip需要装其它东西,而且如果是生产环境不联网又很麻烦。 正则表达式问题跟之前编码问题有关。例如这样的正则表达式在win上可以run,但在Linux+Python2.7上并不能提取出东西。
通过用之前的二分法定位bug,发现是“?”?的问题,前面的“:”是Unicode字符。 解决方案是把正则表达式字符串和待匹配字符串都转换成‘utf-8’的形式,其中前者可以简写为前面加u:
输出结果: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:47:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |