首页 文章 精选 留言 我的

精选列表

搜索[解释型编程语言],共10000篇文章
优秀的个人博客,低调大师

关系型数据抽取到hive中

操作步骤 1.建立外表 CREATE external TABLE t_rk_baseinfo_5kwexternal ( ROW_ID STRING, SYNC_SIGN STRING, SYNC_ERROR_DESC STRING, OperateType STRING, SYNC_Date STRING, XiaQuCode STRING, Name STRING, NameEN STRING, NameUsed STRING, Sex STRING, Nation STRING, Birthday STRING, BirthPlace STRING, Age STRING, Native STRING, Nationality STRING, IdcardType STRING, Idcard STRING, IdcardBeginDate STRING, IdcardEndDate STRING, Political STRING, MaritalStatus STRING, Faith STRING, MilitaryService STRING, Height STRING, Weight STRING, BloodType STRING, Mobile STRING, Telephone STRING, RegionAddress STRING, Address STRING, PostCode STRING, EMail STRING, Health STRING, FamliyDiseaseHis STRING, IdDeath STRING, DeathDate STRING, Type STRING, PersonGuid STRING, HabCode STRING, AgeArea STRING, HouseholdType STRING, Education STRING, baidulat STRING, baidulng STRING) row format delimited fields terminated by ‘\t’; ; 2.文件抽取至HDFS 3.创建事务表 clustered by (ROW_ID) into 3 buckets stored as orc TBLPROPERTIES (‘transactional’=’true’); 备用:LOAD DATA INPATH ‘/path/to/local/files’ into table t_rk_baseinfo; 4.hdfs到外表 5.外表到事务表 insert into 事务表 select * from 外表;

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

Swift中的泛型语法实践

先来简单的, 由浅入深嘛。 func swapTwoValue<T>(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA } var someInt = 3 var anotherInt = 107 swapTwoValue(&someInt, &anotherInt) var someString = "hello" var anotherString = "world" swapTwoValue(&someString, &anotherString) print(someInt, someString) struct Stack<Element> { var items = [Element]() mutating func push(_ item: Element) { items.append(item) } mutating func pop() -> Element { return items.removeLast() } } var stackOfString = Stack<String>() stackOfString.push("uno") stackOfString.push("dos") stackOfString.push("res") stackOfString.push("cuatr") stackOfString.push("bemo") let fromTheTop = stackOfString.pop() print(fromTheTop)

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

设计模式(六)建造者(创建型)

概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 类图 代码 public abstract class Computer { private String type; private String cpu; private String ram; private String os; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } public String getRam() { return ram; } public void setRam(String ram) { this.ram = ram; } public String getOs() { return os; } public void setOs(String os) { this.os = os; } } 创建两种型号的计算机: public class T410 extends Computer { private String hardDisk; public T410() { this.setType("ThinkPad T410i"); } public String getHardDisk() { return hardDisk; } public void setHardDisk(String hardDisk) { this.hardDisk = hardDisk; } @Override public String toString() { return "T410 [hardDisk=" + hardDisk + ", getType()=" + getType() + ", getCpu()=" + getCpu() + ", getRam()=" + getRam() + ", getOs()=" + getOs() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + "]"; } } public class X201 extends Computer { public X201() { this.setType("Thinkpad X201i"); } @Override public String toString() { return "X201 [getType()=" + getType() + ", getCpu()=" + getCpu() + ", getRam()=" + getRam() + ", getOs()=" + getOs() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + "]"; } } 在计算机产品类的基础上增加一个ComputerBuilder接口,以及两个的实现类,以便对计算机进行生产: public interface ComputerBuilder { void buildCpu(); void buildRam(); void buildHardDisk(); void BuildOs(); Computer getResult(); } public class T410Builder implements ComputerBuilder { private T410 computer = new T410(); @Override public void buildCpu() { computer.setCpu("i5"); } @Override public void buildRam() { computer.setRam("4G"); } @Override public void buildHardDisk() { computer.setHardDisk("500G"); } @Override public void BuildOs() { computer.setOs("Win7"); } @Override public Computer getResult() { return computer; } } public class X201Builder implements ComputerBuilder { private X201 computer = new X201(); @Override public void buildCpu() { computer.setCpu("i7"); } @Override public void buildRam() { computer.setRam("8G"); } @Override public void buildHardDisk() { //没有HaedDisk } @Override public void BuildOs() { computer.setOs("Win8"); } @Override public Computer getResult() { return computer; } } 再鞥家导演者: public class ComputerDirector { ComputerBuilder builder; public T410 constructT410() { builder = new T410Builder(); builder.buildCpu(); builder.buildHardDisk(); builder.BuildOs(); builder.buildRam(); return (T410) builder.getResult(); } public X201 constructX201() { builder = new X201Builder(); builder.buildCpu(); builder.buildHardDisk(); builder.BuildOs(); builder.buildRam(); return (X201) builder.getResult(); } } 测试: public class ComputerTest { public static void main(String[] args) { ComputerDirector director = new ComputerDirector(); Computer t410 = director.constructT410(); System.out.println(t410); System.out.println("-------------------------"); Computer x201 = director.constructX201(); System.out.println(x201); } } 与抽象工厂的区别 在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。 建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。 本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3856359.html,如需转载请自行联系原作者

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

设计模式(三)模版方法(行为型)

模板方法模式:定义一个算法的执行骨架,将具体的算法实现延迟到子类完成。 模板方法模式需要开发抽象类和具体子类的设计师之间的协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本方法汇总起来的方法叫做模板方法(template method),这个设计模式的名字就是从此而来。 举个例子: 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单。在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同。 代码说明一切 这里,代码以一个看模版方法用了多少时间的例子来说明一下: package com.yydcdut.java2; public abstract class GetTime { public void getTime() { long time1 = System.currentTimeMillis(); this.doSomething(); long time2 = System.currentTimeMillis(); System.out.println("耗时:"+(time2-time1)); } public abstract void doSomething(); } package com.yydcdut.java2; public class Demo extends GetTime { @Override public void doSomething() { for(int i=0;i<10000;i++) System.out.println(""+i); } } package com.yydcdut.java2; public class Main { public static void main(String[] args) { GetTime gt = new Demo(); gt.getTime(); } } 总结 模板方法模式:抽象的骨架类,具体的实现类。 优点:使用模板方法模式,在定义算法骨架的时候,可以灵活的实现具体的算法。满足用户多变的需求。 缺点:假如算法骨架有改动,就需要修改抽象类,那么,具体的实现类,也会跟着修改。 本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3842819.html,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册