当前位置: 首页 > news >正文

cdr做网站流程番禺区保安服务公司

cdr做网站流程,番禺区保安服务公司,wordpress主题怎么使用教程,重庆最近新闻大事件文档地址#xff1a;https://cwiki.apache.org/confluence/display/Hive/LanguageManualTransform 一、介绍二、实现1.脚本上传到本地2.脚本上传到hdfs 三、几个需要注意的点1.脚本名不要写全路径2.using后面语句中#xff0c;带不带python的问题3.py脚本Shebang… 文档地址https://cwiki.apache.org/confluence/display/Hive/LanguageManualTransform 一、介绍二、实现1.脚本上传到本地2.脚本上传到hdfs 三、几个需要注意的点1.脚本名不要写全路径2.using后面语句中带不带python的问题3.py脚本Shebang#!/usr/bin/env python 一、介绍 和udf差不多的作用支持用python实现。通过标准输入流从hive读取数据内部处理完再通过标准输出流将处理结果返回给hive。实现流程上比udf要更简单灵活一些只需要上传脚本add file加载到分布式缓存使用。 二、实现 先定义一个名为transform.py的脚本将传入的两个字段值都1。 #!/usr/bin/env python import sysfor line in sys.stdin:try:x, y map(float, line.strip().split(\t))x 1y 1print(\t.join(map(str, [x, y])))except ValueError as e:print(\t.join([r\N] * 2))上面对输入流按照\t分隔是因为hive中的数据在传递到py脚本时多个字段间默认会用\t分隔拼接为字符串并且空值null会被转为字符串\N。同样将处理结果返回给hive时如果多个字段为了hive能够正确解析也需要用\t拼接输出单独的\N在hive中也会被重新解释为null。 除了单独的\N会被重新解释为null外还有一种情况也会被hive解释为null就是脚本里返回的字段个数小于hive中接收的字段个数时hive中多余的字段会被赋值为null。 1.脚本上传到本地 这里的本地指的是hive主服务hive server2所在的节点也就是我们客户端连接的那个机器。 先上传到主服务机器下的某个路径 # 文件上传路径 [rootnode1 HiveLib]# readlink -e transform.py /root/HiveLib/transform.py上传后通过add file命令将脚本添加到分布式缓存之后就可以直接使用了。 -- 添加到分布式缓存 add file /root/HiveLib/transform.py;-- 创建一个临时表测试执行 with table as (select 1 as id, 1.6789 as col1, 7.13 as col2union allselect 2 as id, 11.568 as col1, null as col2union allselect 3 as id, 26.09761 as col1, 71.89002 as col2 ) -- as后面接收脚本返回值的字段也可以指定字段类型, eg:(col1 double, col2 double), 省略时默认都是字符串string类型 select transform (col1, col2) using transform.py as (col1, col2) from table;2.脚本上传到hdfs 这种方式和本地实现基本一致只不过需要将脚本上传到hdfs中add file时后面跟的是hdfs路径。 [rootnode1 HiveLib]# hadoop fs -put ./transform.py /user/hive/lib [rootnode1 HiveLib]# hadoop fs -ls /user/hive/lib Found 2 items -rw-r--r-- 3 root supergroup 4164 2022-12-18 00:48 /user/hive/lib/hive_udf-1.0-SNAPSHOT.jar -rw-r--r-- 3 root supergroup 257 2024-05-05 19:13 /user/hive/lib/transform.pysql客户端中执行 -- 脚本路径换为hdfs路径 add file hdfs://node1:8020/user/hive/lib/transform.py;with table as (select 1 as id, 1.6789 as col1, 7.13 as col2union allselect 2 as id, 11.568 as col1, null as col2union allselect 3 as id, 26.09761 as col1, 71.89002 as col2 ) select transform (col1, col2) using transform.py as (col1, col2) from table;三、几个需要注意的点 1.脚本名不要写全路径 using语句后面指定脚本只写脚本名即可不要写全路径。全路径的话会报错[08S01][20000] Error while processing statement: FAILED: Execution Error, return code 20000 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. Unable to initialize custom script.参考 https://stackoverflow.com/questions/15106127/i-met-an-error-when-i-using-hive-transform-features我也不太理解为什么有这要求先照做就行。 2.using后面语句中带不带python的问题 这里说的是sql语句中是using transform.py还是using python transform.py的问题。可以不带python这个关键字但是前提脚本中必须指定了Shebang类似于#!/usr/bin/env python这样指定脚本的解释器。如果指定Shebangusing后面带不带python都可以如果脚本中没指定using后面必须带python这个关键字否则报错。 看到有人说需要给py脚本chmod x transform.py赋予可执行权限实际操作中经过验证本地和hdfs都不需要。 3.py脚本Shebang#!/usr/bin/env python Shebang也称为Hashbang是一个源于Unix系统中的概念特别是在类Unix操作系统中广泛使用。它是指脚本文件第一行以#!开头的特殊注释行用于指定该脚本应该由哪个解释器程序来执行。这个名称来源于这两个起始字符—井号#和叹号!。 主要解释下#!/usr/bin/env python和#!/usr/bin/python的区别。两者都是用来指定该脚本的解释器但是前者比后者有更好的兼容性可以理解为后者是指定了一个固定的解释器路径虽然多数情况下遵循规范解释器路径会在该目录下但是并不能保证一定存在。而前者逻辑上等价于env | grep python它是从当前所有的环境变量中按照一定的优先级顺序去找python解释器最先找到哪个就用哪个执行所以可以有效避免路径指定错误的问题推荐前面这种写法。 [rootnode1 HiveLib]# which python /root/anaconda3/bin/python [rootnode1 HiveLib]# which env /usr/bin/env [rootnode1 HiveLib]# env | grep python CONDA_PYTHON_EXE/root/anaconda3/bin/python
http://www.dnsts.com.cn/news/229629.html

相关文章:

  • 2019网站建设建筑人才网报名平台
  • wordpress清理网站缓存wordpress酒店模板下载
  • 卖保健品可以自己做网站卖吗互联网技术试验卫星
  • 建设工程敎育那个网站亿联时代网站建设
  • 网站设计师和ui设计师跨境电商服务
  • 给工厂做代加工优化算法有哪些
  • 境外网站服务器雅虎搜索引擎入口
  • 微网站和app的区别微教育云平台网站建设
  • 买微单的网站建设装修案例英文
  • 网站空间是虚拟主机吗福州建设企业
  • 社交型网站首页面设计分析男科
  • html嵌入网站wordpress 图书模板
  • 建设公司网站费用多少怎么做网站的rss
  • 大型自适应的网站开发商城模板网站模板
  • 上海网站建设的价格低怎么搭建mysql数据库网站
  • 源码哥网站的模板做影视网站用什么源码
  • 装修公司网站源代码四核网站建设
  • 大同市住房与城乡建设厅网站网站开发工作室策划案
  • 哪个网站建站比较好共享wifi小程序搭建
  • 成都企业网站建设 四川冠辰科技营销网站的设计与实现
  • 购物商城网站模板网站设计知名企业
  • 中信建设有限责任公司 乔峰手机郑州网站关键词优化外包
  • 佛山移动网站建设费用网站后台发布图片upload failed
  • 网站建设作业教程网站建设推进计划
  • 做断桥铝最知名的网站免费制作网页平台
  • 万网如何做网站请别人做网站大概要多少钱
  • 宝安中心站是几号线网站备案许可证号查询网站
  • python 网站开发 视频网站安全检测方法
  • 河东做网站公司wordpress 商铺
  • 网站分享对联广告网页设计报价