首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

Hive计算时count sum partition by等方法在数据开发时的一些用法

本篇文章用于记录平时在做hive计算写sql时的心得epr代表字段 1、常用coalesce(epr,0)方法,可以防止当前字段为空,可以在计算时给个默认值,nvl()也可以 2、常用round(epr, 2)方法,数仓有时候数据类型为float、double,计算时会有精度问题,此方法可以用来保留位数 3、(CASE WHEN epr1 in (2,2) THEN epr2 ELSE -1 END),这个可以根据一个字段的值来定义另一个字段的值 4、epr3,SUM(CASE WHEN epr1 in (2,2) THEN epr2 ELSE -epr2 END) OVER (PARTITION BY epr3) 这种用法可以解决根据epr3聚合的字段,可以根据epr1的值来决定聚合函数里的正负号,PARTITION BY是可以解决在查询的时候可以直接聚合数据,而不需要单独group by数据 5、count(DISTINCT epr1) 对该字段去重去null的计数,count(epr1) 对该字段去null的计数 6、row_number() OVER (partition BY epr1, epr2 ORDER BY epr3 DESC) as number 先对epr1、epr2两个字段聚合数据然后在按epr3排序,按自然数顺序往下排,epr3相同比较数据的顺序,递增 7、rank() OVER (partition BY epr1, epr2 ORDER BY epr3 DESC) as number 先对epr1、epr2两个字段聚合数据然后在按epr3排序,按自然数顺序往下排,epr3相同的话rank值一样,有相等 8、hive里面group by的时候查询出的字段只能是group by 后的字段,不知道是不是我司的问题

优秀的个人博客,低调大师

分布式系统开发工具包 —— 基于Hessian的HTTP RPC调用技术

Hessian官网:http://hessian.caucho.com/ hessian是二进制web service协议。 Hessian介绍 创建Hessian服务包括四个步骤: 创建Java接口,用于提供公开服务 使用HessianProxyFactory创建客户端 创建服务实现类 在servlet引擎中配置服务 HelloWorld服务 public interface BasicAPI { public String hello(); } 服务实现 public class BasicService extends HessianServlet implements BasicAPI { private String _greeting = "Hello, world"; public void setGreeting(String greeting) { _greeting = greeting; } public String hello() { return _greeting; } } 客户端实现 String url = "http://hessian.caucho.com/test/test"; HessianProxyFactory factory = new HessianProxyFactory(); BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url); System.out.println("hello(): " + basic.hello()); 部署标准web.xml <web-app> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>home-class</param-name> <param-value>example.BasicService</param-value> </init-param> <init-param> <param-name>home-api</param-name> <param-value>example.Basic</param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/hello</url-pattern> <servlet-name>hello</servlet-name> </servlet-mapping> </web-app> Hessian序列化 Hessian类可以用来做序列化与反序列化 序列化 Object obj = ...; OutputStream os = new FileOutputStream("test.xml"); Hessian2Output out = new Hessian2Output(os); out.writeObject(obj); os.close(); 反序列化 InputStream is = new FileInputStream("test.xml"); Hessian2Input in = new Hessian2Input(is); Object obj = in.readObject(null); is.close(); 如果要序列化比基础类型或String类型更加复杂的java对象,务必确保对象实现了java.io.Serializable接口。 Hessian处理大量数据 分布式应用需要发送大量二进制数据时,使用InputStream会更加有效率,因为它避免了分配大量byte数组。方法参数中只有最后一个参数可能是InputStream,因为数据是在调用过程中读的。 下面是一个上传文件的API的例子 package example; public interface Upload { public void upload(String filename, InputStream data); } 如果返回结果是InputStream,客户端必须在finally块中调用InputStream.close()方法,因为Hessian不会关闭底层HTTP流,直到所有数据被读取并且input stream被关闭。 文件下载API: package example; public interface Download { public InputStream download(String filename, InputStream data); } 文件下载实现: InputStream is = fileProxy.download("test.xml"); try { ... // read data here } finally { is.close(); } 原文发布于:http://www.yesdata.net/2018/03/11/hessian/

优秀的个人博客,低调大师

开发者的2018】GAN、AutoML、统一框架、语音等十大趋势

GAN与造假 虽然生成对抗网络几年前就出现了,我对它是相当怀疑的。几年过去了,即使看到GAN在生成64x64分辨率的图像方面取得了巨大的进步,我对它仍是怀疑的。在阅读了一些数学文章之后,我更加怀疑了,因为这些文章说GAN并没有真正了解分布。但在2017年,事情有所改变。首先,一些新的有趣的架构(例如CycleGAN)和数学上改进的架构(例如Wasserstein GAN)让我实践了一些GAN网络,它们的表现一般,但在完成这两个程序之后,我确信我们可以,并且应该使用GAN来生成东西。 首先,我非常喜欢NVIDIA的一篇关于生成全高清图像的研究论文,生成的图像看起来非常真实(与一年前的64x64分辨率的令人毛骨悚然的人脸相比): 还有很多GAN在游戏行业的应用,例如用GAN生成游戏场景,英雄乃至整个世界。而且我认为我们必须意识到全新的造假水

优秀的个人博客,低调大师

Android开发配置,消除SDK更新时的“https://dl-ssl.google.com refused”异常

消除SDK更新时的“https://dl-ssl.google.com refused”错误 消除SDK更新时,有可能会出现这样的错误: Download interrupted: hostname in certificate didn't match: <dl-ssl.google.com> != <www.google.com> Download interrupted: Connection to https://dl-ssl.google.com refused Done. Nothing was installed. 解决办法是:将https://修改为http:// 修改方法是:如下图,在Android SDK Manager->Tools-Options...选项界面, 将“Force https://… sources to be fetched using http://…”勾选! 如果还有错,可以在文件(C:\Windows\System32\drivers\etc\hosts)中,添加如下几行: 203.208.46.146 www.google.com 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/p/3927633.html如需转载请自行联系原作者 jiahuafu

优秀的个人博客,低调大师

Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类

正文 一、前提 目的:动态加载SD卡中Apk的类。 注意:被加载的APK是未安装的。 相关:本文是本博另外一篇文章:Android动态加载jar/dex的升级版。 截图: 成功截图: 二、准备 准备被调用Android工程:TestB ITest public interfaceITest{ StringgetMoney(); } TestBActivity public classTestBActivity extendsActivity implementsITest{ /** Calledwhentheactivityisfirstcreated. */ @Override public voidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override publicStringgetMoney(){ return"1"; } } 代码说明:很简单的代码。将生成后的TestB.apk拷贝到SD卡的根目录下。 三、调用 调用工程TestA public classTestAActivity extendsActivity{ /** Calledwhentheactivityisfirstcreated. */ @Override public voidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Stringpath=Environment.getExternalStorageDirectory()+"/"; Stringfilename="TestB.apk"; DexClassLoaderclassLoader= newDexClassLoader(path+filename,path, null,getClassLoader()); try{ ClassmLoadClass=classLoader.loadClass("com.nmbb.TestBActivity"); Constructorconstructor=mLoadClass.getConstructor( newClass[]{}); ObjectTestBActivity=constructor.newInstance( newObject[]{}); MethodgetMoney=mLoadClass.getMethod("getMoney", null); getMoney.setAccessible( true); Objectmoney=getMoney.invoke(TestBActivity, null); Toast.makeText( this,money.toString(),Toast.LENGTH_LONG).show(); } catch(ClassNotFoundExceptione){ e.printStackTrace(); } catch(SecurityExceptione){ e.printStackTrace(); } catch(NoSuchMethodExceptione){ e.printStackTrace(); } catch(IllegalArgumentExceptione){ e.printStackTrace(); } catch(InstantiationExceptione){ e.printStackTrace(); } catch(IllegalAccessExceptione){ e.printStackTrace(); } catch(InvocationTargetExceptione){ e.printStackTrace(); } } } 执行的时候可以发现会自动生成TestB.dex文件。动态加载方面还可以搜索一下"Java动态加载"方面的资料,很有参考价值。可以发现比Android动态加载jar/dex使用起来方便得多。 四、下载 TestA.zip TestB.zip 五、注意 6.1 别忘了加上SDCARD的写权限: android.permission.WRITE_EXTERNAL_STORAGE 6.2 同样注意,不要再两个工程包含package和名称相同的接口,否则报错。(参见Android动态加载jar/dex的后期维护) 六、扩展阅读 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法 (强烈推荐:QQ游戏动态调用Activity的方法:通过ClassLoader,loadClass Activity类,然后分别在主工程的onDestroy、onKeyDown、onPause、onRestart、onResume等生命周期方法中反射调用(Method、invoke)子工程的类方法来模拟实现整个生命周期。此外巧妙的通过解压缩APK文件来获取游戏的资源) Android中文Wiki:DexFile 七、缺点 6.1 由于是使用反射,无法取得Context,也就是TestBActivity与普通的类毫无区别,没有生命周期。 八、推荐 Android版 程序员专用搜索 结束 忙着换工作、忙着把翻译组转动Wiki平台、忙着推广翻译组...忙这忙那的,博客已经有近2个月没有写Android方面的文章,终于又可以回来,继续挤时间来写博客,与大家一同探讨与分享。 本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/844928,如需转载请自行联系原作者

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册