精华内容
下载资源
问答
  • hive 复合结构Map、Struct详解

    万次阅读 2016-03-22 19:33:51
    hive里支持map的结构如下: (key1, value1, key2, value2, ...) Creates a map with the given key/value pairs 建表语句: create table test_map(name string, score map) ROW FORMAT DELIMITED FIELDS ...
    Map详解
    hive里支持map的结构如下:
    (key1, value1, key2, value2, ...) Creates a map with the given key/value pairs

    建表语句:
    create table test_map(name string, score map<string,int>)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    COLLECTION ITEMS TERMINATED BY ','
    MAP KEYS TERMINATED BY ':'

    测试数据
    cat test
    leilei 数学:99,语文:90,英语:96
    lucy 数学:100,语文:85,英语:91

    将数据导入表中:
    LOAD DATA LOCAL INPATH '/home/webopa/lei.wang/datas_test/test_map' OVERWRITE INTO TABLE test_map;

    在表中查询:
    hive> select * from test_map;
    OK
    leilei {"数学":99,"语文":90,"英语":96}
    lucy {"数学":100,"语文":85,"英语":91}
    Time taken: 0.052 seconds, Fetched: 2 row(s)

    hive> select ts.name,ts.score['数学'] from test_map ts;
    Total jobs = 1
    Launching Job 1 out of 1
    ...
    Total MapReduce CPU Time Spent: 3 seconds 280 msec
    OK
    leilei 99
    lucy 100
    Time taken: 26.072 seconds, Fetched: 2 row(s)

    Struct
    hive里支持的Struct结构:
    (val1, val2, val3, ...) Creates a struct with the given field values. Struct field names will be col1, col2, ...

    建表语句
    CREATE TABLE test_struct(name string,lable struct<price:string,pay:string,num:int>)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    COLLECTION ITEMS TERMINATED BY ','

    测试数据
    cat test_struct
    aaa cheap,imm,1
    bbb high,imm,2

    将数据导入表中
    LOAD DATA LOCAL INPATH '/home/webopa/lei.wang/datas_test/test_struct' OVERWRITE INTO TABLE test_struct

    在表中查询
    hive> select * from test_struct;
    OK
    aaa {"price":"cheap","pay":"imm","num":1}
    bbb {"price":"high","pay":"imm","num":2}
    Time taken: 0.046 seconds, Fetched: 2 row(s)

    hive> select name,lable.price from test_struct;
    Total jobs = 1
    Launching Job 1 out of 1
    ...
    Total MapReduce CPU Time Spent: 1 seconds 270 msec
    OK
    aaa cheap
    bbb high
    Time taken: 20.054 seconds, Fetched: 2 row(s)
    展开全文
  • 结构设计模式 -复合设计模式 复合设计模式是结构设计模式之一。当我们必须表示部分整体层次结构时,使用复合设计模式,复合设计模式模式又被称为组合设计模式。 目录[隐藏] 1复合设计模式 1.1复合设计...

     

    结构设计模式 - 复合设计模式

     

    复合设计模式是结构设计模式之一。当我们必须表示部分整体层次结构时,使用复合设计模式,复合设计模式模式又被称为组合设计模式。

     

     

    目录[ 隐藏 ]

     

    复合设计模式

    复合图案,复合设计图案

    当我们需要以一种必须以相同方式处理结构中的对象的方式创建结构时,我们可以应用复合设计模式。

    让我们用一个真实的例子来理解它 - 图是一个由诸如圆形,线条,三角形等对象组成的结构。当我们用颜色填充图形(比如红色)时,相同的颜色也会被应用到对象中。画画。这里的图纸由不同的部分组成,它们都有相同的操作。

    复合模式由以下对象组成。

    1. 基本组件 - 基本组件是组合中所有对象的接口,客户端程序使用基本组件来处理组合中的对象。它可以是一个接口或一个抽象类,其中包含所有对象共有的一些方法。
    2. Leaf - 定义合成中元素的行为。它是组合的构建块并实现基本组件。它没有引用其他组件。
    3. Composite - 它由叶元素组成,并在基本组件中实现操作。

    在这里,我将复合设计模式应用于绘图场景。

     

    复合设计模式 基础组件

    复合模式基础组件定义了叶子和复合材料的常用方法。我们可以Shape使用一种方法创建一个类draw(String fillColor)来绘制具有给定颜色的形状。

    Shape.java

    
    package com.journaldev.design.composite;
    
    public interface Shape {
    	
    	public void draw(String fillColor);
    }
    

    复合设计模式叶对象

    复合设计模式叶实现基础组件,这些是组合的构建块。我们可以创建多个叶子对象,如Triangle,Circle等。

    Triangle.java

    
    package com.journaldev.design.composite;
    
    public class Triangle implements Shape {
    
    	@Override
    	public void draw(String fillColor) {
    		System.out.println("Drawing Triangle with color "+fillColor);
    	}
    
    }
    

    Circle.java

    
    package com.journaldev.design.composite;
    
    public class Circle implements Shape {
    
    	@Override
    	public void draw(String fillColor) {
    		System.out.println("Drawing Circle with color "+fillColor);
    	}
    
    }
    

    复合对象

    复合对象包含叶对象组,我们应该提供一些辅助方法来添加或删除组中的叶子。我们还可以提供一种方法来从组中删除所有元素。

    Drawing.java

    
    package com.journaldev.design.composite;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Drawing implements Shape{
    
    	//collection of Shapes
    	private List<Shape> shapes = new ArrayList<Shape>();
    	
    	@Override
    	public void draw(String fillColor) {
    		for(Shape sh : shapes)
    		{
    			sh.draw(fillColor);
    		}
    	}
    	
    	//adding shape to drawing
    	public void add(Shape s){
    		this.shapes.add(s);
    	}
    	
    	//removing shape from drawing
    	public void remove(Shape s){
    		shapes.remove(s);
    	}
    	
    	//removing all the shapes
    	public void clear(){
    		System.out.println("Clearing all the shapes from drawing");
    		this.shapes.clear();
    	}
    }
    

    请注意,复合也实现了组件和行为类似于叶,除了它可以包含叶元素组。

    复合图案,复合设计模式Java

    我们的复合模式实现已准备好,我们可以使用客户端程序对其进行测试。

    复合设计模式客户端程序

    TestCompositePattern.java

    
    package com.journaldev.design.test;
    
    import com.journaldev.design.composite.Circle;
    import com.journaldev.design.composite.Drawing;
    import com.journaldev.design.composite.Shape;
    import com.journaldev.design.composite.Triangle;
    
    public class TestCompositePattern {
    
    	public static void main(String[] args) {
    		Shape tri = new Triangle();
    		Shape tri1 = new Triangle();
    		Shape cir = new Circle();
    		
    		Drawing drawing = new Drawing();
    		drawing.add(tri1);
    		drawing.add(tri1);
    		drawing.add(cir);
    		
    		drawing.draw("Red");
    		
    		drawing.clear();
    		
    		drawing.add(tri);
    		drawing.add(cir);
    		drawing.draw("Green");
    	}
    
    }
    

    上述复合模式客户端程序的输出是:

    
    Drawing Triangle with color Red
    Drawing Triangle with color Red
    Drawing Circle with color Red
    Clearing all the shapes from drawing
    Drawing Triangle with color Green
    Drawing Circle with color Green
    

    复合模式重点

    • 仅当对象组应表现为单个对象时,才应应用复合模式。
    • 复合设计模式可用于创建树状结构。

    java.awt.Container#add(Component) 是java中复合模式的一个很好的例子,在Swing中使用了很多。

    早期的结构设计模式文章:

     

    转载来源:https://www.journaldev.com/1535/composite-design-pattern-in-java

    展开全文
  • 复合类型与with关键字

    2015-07-06 16:26:32
    class A extends B with C with D with E 应做类似如下形式解读: class A extends (B with C with D with E) 这正是《scala for the impatient》这本书上的内容,我下面的理解也基本源于这本书。 T1 ...

    符合类型的表现形式为:

    class A extends B with C with D with E 
    

    应做类似如下形式解读:

    class A extends (B with C with D with E)
    

    这正是《scala for the impatient》这本书上的内容,我下面的理解也基本源于这本书。

    T1 with T2 with T3 …
    

    这种形式的类型称为复合类型(compound type)或者也叫交集类型(intersection type)。

    跟结构类型类似,可以在一个方法里声明类型参数时使用复合类型:

    scala> trait X1; trait X2;
    
    scala> def test(x: X1 with X2) = {println("ok")}
    test: (x: X1 with X2)Unit
    
    scala> test(new X1 with X2)
    ok
    
    scala> object A extends X1 with X2
    
    scala> test(A)
    ok
    

    也可以通过 type 声明:

    scala> type X = X1 with X2
    defined type alias X
    
    scala> def test(x:X) = println("OK")
    test: (x: X)Unit
    
    scala> class A extends X1 with X2
    
    scala> val a = new A
    
    scala> test(a)
    OK
    

    在上一篇介绍结构类型时也提到过复合类型中也可包含结构类型:

    scala> type X = X1 with X2 { def close():Unit }
    defined type alias X



    展开全文
  • scala类型系统:6) 复合类型与with关键字 上次上海scala聚会回来,把《快学scala》借给王福强看了几天,他写过一篇”scala for the impatient琐碎记录”,其中 多Trait与继承的解读 class A extends B with C with...

    scala类型系统:6) 复合类型与with关键字

    上次上海scala聚会回来,把《快学scala》借给王福强看了几天,他写过一篇”scala for the impatient琐碎记录”,其中多Trait与继承的解读

    class A extends B with C with D with E 
    

    应做类似如下形式解读:

    class A extends (B with C with D with E)
    

    这正是《scala for the impatient》这本书上的内容,我下面的理解也基本源于这本书。

    T1 with T2 with T3 …
    

    这种形式的类型称为复合类型(compound type)或者也叫交集类型(intersection type)。

    跟结构类型类似,可以在一个方法里声明类型参数时使用复合类型:

    scala> trait X1; trait X2;
    
    scala> def test(x: X1 with X2) = {println("ok")}
    test: (x: X1 with X2)Unit
    
    scala> test(new X1 with X2)
    ok
    
    scala> object A extends X1 with X2
    
    scala> test(A)
    ok
    

    也可以通过 type 声明:

    scala> type X = X1 with X2
    defined type alias X
    
    scala> def test(x:X) = println("OK")
    test: (x: X)Unit
    
    scala> class A extends X1 with X2
    
    scala> val a = new A
    
    scala> test(a)
    OK
    

    在上一篇介绍结构类型时也提到过复合类型中也可包含结构类型:

    scala> type X = X1 with X2 { def close():Unit }
    defined type alias X

    转载自:http://hongjiang.info/scala/   推荐大家阅读下这位大哥出版的书《Scala函数式编程》

    展开全文
  • 一、OLE(Object Linking and Embedding) 文件二进制结构 Office 文档(如:.doc、.ppt、.xls等)很多是复合文档(OLE文件),所有文件数据都是存储在一个或多个流中。每 个流都有一个相似的数据结构,用于存储元...
  • Scala类型 6:复合类型 & with关键字

    千次阅读 2015-02-27 21:12:13
    with 关键字:class A extends B with C with D with E 解读方式:class A extends (B with C with D with E)(B with C with D with E)首先是一个整体,再由 A 去继承。 注:对于Java中的菱形继承问题;Scala的解决...
  • Face Aging With Conditional Generative Adversarial Networks 中,GANs用于人脸图像合成,让人提前看到年老时的模样,还原Gans不同于一般DNN模型的特殊应用及主要存在意义。  人脸图像合成和基于时间的预测,是...
  • Scala具有丰富的数据结构类型, 结构类型:定义一个方法,该方法的入参是一个匿名类型对象,该类包含若干个函数或方法,这样就可以定义一个具有结构类型的方法, 当调用该方法时传入具有具体实现方法的结构类型对象...
  • 目前 hive 支持的复合数据类型有以下几种: map (key1, value1, key2, value2, ...) Creates a map with the given key/value pairs struct (val1, val2, val3, ...) Creates a struct with the given field ...
  • Processing)----简单索引访问(Simple Indexed Access)》一文中已经对索引访问的各种形式作了详细介绍,本文重点讨论匹配索引扫描对于复合索引的种种情况应该如何进行索引的选择。 复合索引(Composite Index) ...
  • C++中的复合类型

    千次阅读 多人点赞 2019-06-01 21:43:21
    文章目录重温C++ 复合类型在程序中 使用结构体结构体赋值结构体数组结构体中位字段共用体枚举指针如何声明一个指针将指针初始化为一个地址使用new来分配内存指针和数组之间的差别指针、数组和指针算术指针和字符串...
  • with用法小结

    千次阅读 2018-01-27 01:18:10
    文章转自:...版权归原作者! 一、with表拥有某物 Mary married a man with a lot of money . 马莉嫁给了一个有着很多钱的男人。 I often dream of a big house with a nice garden .
  • Gradle学习(八)——复合构建

    千次阅读 2017-12-26 19:59:56
    一个包含了其他构建的构建,很多时候和多项目构建非常相似,但是它包含的不是完整的项目,而是完整的构建。组合构建可以做到以下两点: 和比较独立的开发进行组合构建,比如修复一个项目中引用的lib库 ...复合构建
  • Oracle WITH AS 用法

    千次阅读 2013-11-06 23:44:53
    WITH AS从句为子查询块分配一个查询名字(query_name)。通过指定查询名称可以在查询中多次使用该子查询块。Oracle数据库把查询名字当作是一个内嵌视图或临时表来优化查询。 可以在任何查询语句的顶层和多数子查询...
  • scala进阶12-复合类型

    2016-08-16 00:48:00
    trait Compound_Type1 ...class Compound_Type extends Compound_Type1 with Compound_Type2 object Compound_Type { //参数x是复合类型,即是type1的类型也是type2的类型 def compound_Type(x: Compound_Type
  • 数据结构

    千次阅读 2004-09-21 17:48:00
    何谓数据结构 数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据...
  • 在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON文档都内在地具有层次结构复合数据类型...
  • 复合文档(Compound Document)是一种不仅包含文本而且包括图形、电子表格数据、声音、视频图象以及其它信息的文档。可以把复合文档想象成一个所有者,它装着文本、图形以及多媒体信息如声音和图象。目前建立复合...
  • 数仓工具—Hive复合数据类型(9)

    万次阅读 2020-12-25 22:50:21
    除了使用`string`之外的基础数据类型,Hive中的列支持使用struct, map, array,union_type 等复合数据类型。 复合类型是指array、map、struct和uniontype,一般在企业中使用 array和map会比较多一些。
  • 今天继续来认识两个用于循环的关键字,它们是"with_dict"和"with_subelements" 一、with_dict 先来看"with_dict",顾名思义,"with_dict"的使用场景应该与"字典"有关,我们先来看一个小例子,结合示例更加容易说明白...
  • scala类型系统:5) 结构类型 结构类型(structural type)为静态语言增加了部分动态特性,使得参数类型不再拘泥于某个已命名的类型,只要参数中包含结构中声明的方法或值即可。举例来说,java里对所有定义了close方法...
  • SQL结构化查询语言

    千次阅读 2019-06-25 13:04:38
    SQL(structured query language),中文意思是结构化查询语言,它是一种对关系型数据库中的数据进行定义和操作的语言方法,是大多数关系型数据库管理系统所支持的语言。 二、SQL的分类 SQL结构化查询语言分为6个...
  • Go学习笔记之复合数据

    千次阅读 2013-10-15 15:03:37
    个人理解的复合数据是由其他数据格式复合而成。   1、array 数组的类型格式为单个数据单元类型+长度构成,如 [2]int,其中 [2] 代表数组的长度,而 int 代表每个单元都是整形。 数组的元素操作也是通过操作下标,即...
  • Map结构同样属于Java Collections Framework的知识范畴,但是代表Map结构的顶级接口java.util.Map并没有继承java.util.Collection接口。这是因为Map结构属于映射式容器,既是一个Key键对应一个Value值(所以称为键值...
  • 如何在数据库表中建立复合主键

    万次阅读 2014-05-29 10:41:05
    ALTER TABLE 表名 WITH NOCHECK ADD  CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED   (  [字段名1],  [字段名2]  ) GO 例: CREATE TABLE Student  (Son CHAR(12) PRIMARY KEY, ...
  • Hibernate中复合主键的配置和使用

    万次阅读 2012-07-13 18:44:50
    将业务逻辑主键引入库表,以后业务逻辑的变化,将很可能对底层数据库结构产生连带影响。 复合主键的引入,很大程度上意味着业务逻辑已经侵入到数据存储逻辑之中。 因此,应尽量避免。但实际情况中,我们必须面对...
  • 在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON文档都内在地具有层次结构复合数据类型...
  • 什么是数据结构

    万次阅读 2007-03-19 10:30:00
    数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,084
精华内容 12,833
关键字:

with复合结构