草庐IT

hive解析json

目录一、背景二、hive解析json数据函数1、get_json_object 2、json_tuple3、使用嵌套子查询(explode+regexp_replace+split+json_tuple)解析json数组4、使用lateralview解析json数组5、解析非固定名称json一、背景我们进行ETL(Extract-Transfer-Load) 过程中,经常会遇到从不同数据源获取的不同格式的数据,其中某些字段就是json格式,里面拼接了很多字段key和指标值value,今天讲一下如何解析出来相关数据。二、hive解析json数据函数1、get_json_object 语法:get

Hive 开启事务ACID 运行删和改操作

        Hive开启事务ACID 运行删和改操作事务表的适用场景对于数仓中的行级数据更新删除需求比较频繁的,可以考虑使用事务表。但平常的hive表并不建议使用事务表。因为事务表的限制很多,加上由于hive表的特性,也很难满足高并发的场景。另外,如果事务表太多,并且存在大量的更新操作,metastore后台启动的合并线程会定期的提交MapReduceJob,也会一定程度上增重集群的负担。结论:除非有非常迫切的行级更新需求,又只能用hive表来做,才需要去考虑事务表。注意事项不支持BEGIN、COMMIT、ROLLBACK等语句,所有的语句都是自动提交仅支持ORC格式设置开启事务1、配置H

hive lateral view 实践记录(Array和Map数据类型)

目录一、Array1.建表并插入数据 2.lateralviewexplode二、Map1、建表并插入数据2、lateralviewexplode()3、查询数据一、Array1.建表并插入数据正确插入数据:createtabletmp.test_lateral_view_movie_230829(moviestring,categoryarray);insertintotmp.test_lateral_view_movie_230829select'《战狼3》',array('战争','动作','剧情');insertintotmp.test_lateral_view_movie_23082

pyspark 判断 Hive 表是否存在

Catalog.tableExists(tableName:str,dbName:Optional[str]=None)→bool'''tableName:表名dbName:库名(可选)return:bool值'''frompyspark.sqlimportSparkSessionspark=SparkSession\.builder\.appName('tableExists')\.config('spark.num.executors','6')\.config('spark.executor.memory','12g')\.config('spark.driver.memory','2g

doris配置hive的catalog

创建hive的catalogCREATECATALOGhivePROPERTIES('type'='hms','hive.metastore.uris'='thrift://192.168.201.11:9083','hadoop.username'='hive','dfs.nameservices'='your-nameservice',

将Parquet文件的数据导入Hive 、JSON文件导入ES

文章目录将Parquet文件的数据导入Hive查询parquet文件格式编译cli工具查看元数据信息查询抽样数据创建hive表数据存储格式采用parquet加载文件将json数据导入ESES批量导入api原始json文件内容索引结构重组json脚本重组后的json文件bulkapi调用将Parquet文件的数据导入Hive查询parquet文件格式主要利用社区工具https://github.com/apache/parquet-mr/编译cli工具cdparquet-cli;mvncleaninstall-DskipTests;查看元数据信息java-cpparquet-cli-1.13.1

HIVE SQL实现分组字符串拼接concat

在Mysql中可以通过group_concat()函数实现分组字符串拼接,在HIVESQL中可以使用concat_ws()+collect_set()/collect_list()函数实现相同的效果。实例:abc2014B92015A82014A102015B72014B61.concat_ws+collect_list非去重拼接selecta ,concat_ws('-',collect_list(b))ascol_b ,concat_ws('-',collect_list(cast(casstring)))ascol_cfromtb_namegroupbya;查询结果:acol_bcol_

【大数据之Hive】十六、Hive-HQL函数之窗口函数(开窗函数)

1概述  先定义了窗口的大小(按行来算),然后对窗口内的行的数据进行计算,再将计算结果返回给改行。  窗口函数包括窗口和函数两部分,窗口用于定义计算范围,函数用于定义计算逻辑,窗口函数只会在原来的表上增加一列结果列,不改变原来的数据。1.1窗口函数使用语法--窗口函数使用语法select...,函数(col_name)over(窗口范围)result_col_name-表示在窗口范围之上应用函数逻辑fromtable_name;函数:  绝大多数聚合函数都可以配合窗口使用,如max(),min(),sum(),count(),avg()等。窗口:  分为两种,一种是基于行的,一种是基于值的。 

大数据之使用Spark全量抽取MySQL的数据到Hive数据库

文章目录前言一、读题分析二、使用步骤1.导入配置文件到pom.xml2.代码部分三、重难点分析总结前言本题来源于全国职业技能大赛之大数据技术赛项赛题-离线数据处理-数据抽取(其他暂不透露)题目:编写Scala代码,使用Spark将MySQL的shtd_industry库中表EnvironmentData,ChangeRecord,BaseMachine,MachineData,ProduceRecord全量抽取到Hive的ods库(需自建)中对应表environmentdata,changerecord,basemachine,machinedata,producerecord中。以下面题目为

Hive内部表和外部表

表类型详解表分类在Hive中,表类型主要分为两种第一种:内部表也叫管理表表目录会创建在集群上的{hive.metastore.warehouse.dir}下的相应的库对应的目录中。默认创建的表就是内部表第二种:外部表外部表需要使用关键字"external",外部表会根据创建表时LOCATION指定的路径来创建目录,如果没有指定LOCATION,则位置跟内部表相同,一般使用的是第三方提供的或者公用的数据。建表语法:必须指定关键字external。createexternaltabletableName(idint,namestring)[location'path'];--语法:createex