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

如何制作简易 网站中山住房和建设局网站

如何制作简易 网站,中山住房和建设局网站,wordpress 评论提交空白,信息大全使用Shell传参解决DataPhin中PySpark不支持中文的问题 背景 笔者开发PySpark任务时【别问为神马不用Java和Scala打Jar包的方式#xff0c;PySpark不需要打包所以开发效率极高#xff0c;早点搞完早点下班】#xff0c;遇到一个令所有SQL Boy都很头疼的问题#xff0c;那就…使用Shell传参解决DataPhin中PySpark不支持中文的问题 背景 笔者开发PySpark任务时【别问为神马不用Java和Scala打Jar包的方式PySpark不需要打包所以开发效率极高早点搞完早点下班】遇到一个令所有SQL Boy都很头疼的问题那就是一旦Python脚本中出现中文该PySpark任务就报错且无法运行。所以人才们当然是异常机智先搞个中间表把中文改成拼音PySpark跑完了再搞个Hive On Tez任务把拼音改回中文这种笨办法只适合于中文值的种类屈指可数的场景。 由于PySpark任务不能像Hive On Tez任务那样由DataPhin自动解析血缘和依赖还不支持中文所以SQL Boy们也是一度灰常嚣张总觉得Hive On Tez任务就是最好的任务。只有遇到Tez极其严重的性能问题才会想起来Spark的好处。 作为曾经的平台开发攻城狮自然是不能让这股风气蔓延不然大家都变成SQL Boy了还和Oracle数据库开发攻城狮有啥区别。。。势必解决这个问题。 解决方式 既然Py文件中不能写中文而我又要用中文那么借鉴Java开发中常见的前后端Json传参的方式我也可以Shell给Py文件动态传参这样Py文件中就完美的规避了中文的明文自然Py不会报错而参数值又可以让Python调用系统方法拿到。所以可以这么尝试 echo START cat zhiyong.py E0F # -*- coding: UTF-8-*import sys reload(sys) sys.setdefaultencoding(utf-8)from pyspark.sql import SparkSession spark SparkSession \.builder \.appName(project_week_his_incre_daily_prod) \.config(hive.exec.dynamic.partition,true) \.config(hive.exec.dynamic.partition.mode,nonstrict) \.getOrCreate()str_bizdatesys.argv[1]str_param1sys.argv[4].strip() str_param2sys.argv[5].strip() str_param3sys.argv[6].strip()sq11select str_param3 as str_param3 spark.sql(sql1).show()EOFhive_db1hive_db_name1 hive_db2hive_db_name2 STR1中文1 STR2中文2 STR3中文3spark-submit --master yarn --deploy-modeclient --driver-memory 4G --executor-memory 4G --executor-cores 1 --conf spark.dynamicAllocation.enabledtrue --conf spark.dynamicAllocation.minExecutors10 --conf spark.dynamicAllocation.maxExecutors50 --confspark.memory.fraction0.95 --confspark.shuffle.service.enabledtrue --conf spark.ui.port4180 --conf spark.port.maxRetries128--conf spark.rpc.timeout600s --conf spark.debug.maxToStringFields4096 --conf spark.sql.crossJoin.enabledtrue --conf spark.sgl.broadcastTimeout600s --conf spark.sql.autoBroadcastJoinThreshold-1 zhiyong.py ${bizdate} hive_db1 hive_db2 $STR1 $STR2 $STR3经过验证果然可以show出传入的中文参数 原理 这个cat重定向的py文件不支持直接写中文大概率是Encoder的问题。但是Shell本身可以正常写中文参数说明Linux Node的中文语言包和character set正常那么只需要在外层的Shell预先构建变量再通过spark-submit提交这个py文件时传入这些内容为中文的String参数即可在Python脚本中动态获取到变量的值再去拼接SQL字符串给Spark的算子使用。Python文件中依旧不能有明文的中文。 SQL和拼接的其它中文字符串的注释可以用#注释掉写在Shell的头上。 进一步排查 这么做给SQL Boy们使用已经足够了毕竟他们之前只搞过Oracle数据库开发当然也就只会SQL除此之外没啥会的东西了。 但是从平台开发的视角其实还是可以做进一步的分析。笔者的PyCharm一般是用Python3.7这么搞PySpark任务即便有中文也跑的很欢快。出现这种情况首先发现租来的阿里云DataPhin还是老掉牙的Python2.6那么 echo START cat zhiyong.py E0F # -*- coding: UTF-8-*给Py文件的头上个这玩意儿期望当然是可以识别中文。 但是本地、扔服务器都可以跑有中文参数/SQL的PySpark任务就是扔DataPhin跑不起来。。。 于是手动cat生成的py文件发现了惊天大秘密DataPhin解析有问题把#的这一行当Linux的注释给filter了。。。 属实无语的操作。。。 所以更改脚本的解析方式或者把基础环境的python升级到3.7都是个比shell传参更好的主意。平台的事情就不是SQL Boy能解决的了。 转载请注明出处https://lizhiyong.blog.csdn.net/article/details/129699142
http://www.hkea.cn/news/14285811/

相关文章:

  • 杭州网站建设招聘网站开发部门的规章制度
  • 浩方网络网站建设微信代运营是什么意思
  • 积分交易网站开发建微网站
  • 网站托管服务 重庆如何用wordpress搭建个人博客
  • 自己怎么做dj 视频网站虚拟主机免费领取
  • 哈尔滨做网站需要多少钱有哪些建设网站的
  • 玉树营销网站建设公司wordpress模板代码分析
  • 保山哪里有网站建设太原市住房和城乡建设局的网站
  • 个人网站怎么做视频福州短视频seo
  • 网站的推广和宣传工作如何做企业网站建设的目的有哪些
  • 手机网站建站 服务器wordpress 主题 mnews
  • 建设厅网站如何查询企业信息网电商怎么做需要什么条件
  • 在哪个网站上可以学做衣服西安装修行业网站建设
  • 长沙网站建设哪家公司好专业的建设机械网站
  • 如何进行电子商务网站建设规划mvc网站入口asp
  • 怎样下载wordpress重庆seo网络优化师
  • 淘宝网站都是怎么做的找人搭建网站多少钱
  • 企业网站的视频页如何做51一起做网站
  • 柯桥教育网站建设php可以做网站app吗
  • 11个免费网站空间商务网站建设方案ppt
  • 为外国人做非法网站搜好资源网
  • 网站建设支付宝上海游玩攻略必去的地方
  • 网站开发 团队协作软件定制开发费用多少云鲸互创团队
  • 仿站是什么意思郑州室内设计公司排行
  • 江门cms模板建站深圳推广公司有哪些
  • 网站优化seo网站架构优化jsp制作网站
  • 免费自己制作网站方法南昌制作网站的公司吗
  • 汕头网页建站模板福州金山网站建设
  • 网站短期就业培训班wordpress 增加侧边栏
  • 怎样更换动易2006网站模板网站增加权重