hive复杂类型访问操作

复杂类型访问操作1. array类型访问: A[n]

语法: A[n]

操作类型: A为array类型,n为int类型

说明:返回数组A中的第n个变量值。数组的起始下标为0。比如,A是个值为[‘foo‘, ‘bar‘]的数组类型,那么A[0]将返回‘foo‘,而A[1]将返回‘bar‘

举例:

hive> create table lxw_test as selectarray("tom","mary","tim") as t from lxw_dual;

hive> select t[0],t[1],t[2] from lxw_test;

tom     mary    tim

2. map类型访问: M[key]

语法: M[key]

操作类型: M为map类型,key为map中的key值

说明:返回map类型M中,key值为指定值的value值。比如,M是值为{‘f‘ -> ‘foo‘, ‘b‘-> ‘bar‘, ‘all‘ -> ‘foobar‘}的map类型,那么M[‘all‘]将会返回‘foobar‘

举例:

hive> Create table lxw_test as selectmap(‘100‘,‘tom‘,‘200‘,‘mary‘) as t from lxw_dual;

hive> select t[‘200‘],t[‘100‘] from lxw_test;

mary    tom

3. struct类型访问: S.x

语法: S.x

操作类型: S为struct类型

说明:返回结构体S中的x字段。比如,对于结构体struct foobar {int foo, int bar},foobar.foo返回结构体中的foo字段

举例:

hive> create table lxw_test as select struct(‘tom‘,‘mary‘,‘tim‘)as t from lxw_dual;

hive> describe lxw_test;

t      struct<col1:string,col2:string,col3:string>

hive> select t.col1,t.col3 from lxw_test;

tom     tim

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

时间: 2024-11-01 22:36:51

hive复杂类型访问操作的相关文章

hive学习笔记-数据操作

hive数据操作 hive命令行操作 hive -d --define <key=value> 定义一个key-value可以在命令行中使用 hive -d database <databasename>    指定使用的数据库 hive -e "hql"    不需要进入cli执行hql语句,可以在脚本中使用 hive -f fileName 将hql放到一个file文件中执行,sql语句来自file文件 hive -h hostname 访问主机,通过主机的

PHP-"php://(类型)"访问各个输入/输出流以及全局变量$HTTP_RAW_POST_DATA讲解

$_POST $HTTP_RAW_POST_DATA php://input 先来讲以上三者的区别: $_POST:以关联数组方式组织提交的数据, 并对原数据进行编码处理(urldecode)和编码转换, 无论表单enctype为何值, $_POST都可以成功取到传值, 但是碰到不能识别解析的(比如POST过来的Content-Type为text/xml)就无法解析为$_POST数组, 转而交给$HTTP_RAW_POST_DATA(如何POST xml可以使用curl, fsockopen等设

scala学习02-类与对象,类型与操作

Scala类与对象,类型与操作 类的声明 class MyClass{ private var num = 0 // 如果想要不对外开放,使用private,如果不写,默认就是public //方法 //花括号前没有=号,这种情况下,返回值类型一定是Unit,也就是空,所以如果想有返回值,一定要加=号 def add(b:Byte){ num += b } //如果计算表达式只有一行,可以省略掉花括号 def add1(b:Byte):Unit = num += b //有返回值的正常方法: d

Redis的C++与JavaScript访问操作

上篇简单介绍了Redis及其安装部署,这篇记录一下如何用C++语言和JavaScript语言访问操作Redis 1. Redis的接口访问方式(通用接口或者语言接口) 很多语言都包含Redis支持,Redis也提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便.下面这个网址是Redis官方提供的客户端,包含了很多语言: https://redis.io/clients ODBC:(付费) Redis

无法中止进程无法访问操作拒绝访问

无法中止进程无法访问操作拒绝访问 解决方案:使用360解除占用 任务管理器显示进程路径 找到该进程的路径 右键使用360解除占用 注:此方法有可能会无效,如果谁有更好的方法,请说明,谢谢. 其他方法(在控制台(CMD)窗口通过命令终止),不一定有效 上边的方法显示出进程PID列 打开控制台尝试一下命令(假设908是要结束的PID): Taskkill /PID 908 /F 或者 ntsd –c q –p 908 注:此方法来源于网上,本人尝试无效 GoodLuck

ARM 非对齐的数据访问操作

I’m confused about unaligned memory accesses on ARM. My understanding was that they’re not allowed — that is, dereferencing a 32-bit value from a pointer that’s not four-byte aligned will crash. I’ve run into such crashes before. But right now I’ve g

一:redis 的string类型相关操作

*redis客户端中的使用: =============一种:string类型的方法================ 介绍:string是redis的最简单类型,一个key对应一个value,string类型是二进制安全的. redis的string可以包含任何数据,比如jpg图片或者序列化的对象 1:一个key只包含一个value值,当设置相同值时=会覆盖 设置值:set name leyangjun 获取值:get name 2:setnx:(会判断设置的值是否存在,不存在则设置) 设置ke

二:redis 的hash类型相关操作

=====================二种:hash类型================== 介绍:redis -> hash是一个string类型的field和value的映射表 hash特别适合对应存储对象,相较于将对象的每个字段存成单个string类型 将一个对象存储在hash类型中会占用更少的内存,并且可以方便的存取整个对象 0:hset *如果 key(就是hash表) 不存在,一个新的哈希表被创建并进行 HSET 操作 设置hash field为指定值,如果key不存在,则先创建

四:redis的sets类型相关操作(有序和无序集合)

================四五种(有序和无序集合):sets类型(就是集合)============= 一介绍:  set表示集合,添加是是随意添加的----->无序集合 set是集合,它是string类型的无序集合. set是通过hash table实现的,添加,删除和查找的复杂度都是0(1). 对集合我们可以取并集.交集.差集. 通过这写操作我们可以实现sns中的好友推荐和blog的tag功能 1:sadd 向名称key的set中添加元素(唯一的) 例:sadd myset1 one