草庐IT

sql - hive 喜欢 [0-9]

我正在尝试编写一个HIVEcase语句,其中如果一个字段包含数字8/9作为第一个字符,第二个字符包含0-9之间的任何数字,最后一个字段包含A-E之间的任何字母,则它将从字符串中删除它。我拥有的有效代码(大部分)是:CaseWhenSubstr(Upper(Trim(MBRCHR)),-3)like'9_A'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_B'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_C'orSubstr(Upper(Trim(MBRCHR)),-3)like'9_D'orSubstr(Upper(Trim

hadoop - 无法调试 HQL 脚本

所以我正在尝试创建一个HiveSchema来分析存储在hdfs中的json数据。我指的是thisblog用于创建Hive表,下面是我的Schema.hqlCREATEEXTERNALTABLEbase_tweets4(`id`BIGINT,created_atSTRING,`source`STRING,favoritedBOOLEAN,retweet_countINT,retweeted_statusSTRUCT>,`entities`STRUCT>,user_mentions:ARRAY>,hashtags:ARRAY>>,textSTRING,`user`STRUCT,in_rep

mysql - 带有 MySQL 的 Hive-2.3.2 Metastore 无法启动

我已经安装了apache-hive-2.3.2和MySQL。每当我尝试执行SHOWDATABASES或任何配置单元命令时,它都会抛出错误:hive>showdatabases;FAILED:SemanticExceptionorg.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:Unabletoinstantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient我已经像这样配置了hive-site.xml:javax

sql - Hive - 加载具有特殊字符的分隔数据导致关闭位置

假设我想在Hive中创建一个包含4列的简单表并加载一些竖线分隔的数据。CREATEtableTEST_1(COL1string,COL2string,COL3string,COL4string)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'|';原始数据:123|456|DasaniBottled\|Water|789我对Col3值的期望是“DasaniBottled\|Water”,中间有一些特殊字符“\|”,因此导致Hive表列关闭位置从COL3开始,因为我使用“|”作为分隔符创建表。特殊字符\|确实有一个管道|其中的字符。有什么方法可以解决这个问题,让

hadoop - Hive 分区表的记录数

我在Hive中有一个名为“transaction”的表,该表分区在一个名为“DS”的列上,该列将包含类似“2018-05-05”的数据,“2018-05-09”、“2018-05-10”等此表是在完成当天的一夜之间填充的。在任何时候,该表都会有前一天的数据当我像这样查询交易表时SELECTCOUNT(*)FROMtrasactionWHEREDS>="currentdate";我明白了0行-这是正确的,因为尚未加载当前和future日期的数据当我运行以下查询时SELECTDISTINCTDSFROMtrasactionWHEREDS>="currentdate";我明白了2018-05

sql - HIVE SQL 将连续范围折叠成单行

考虑表中的以下记录:NAMEIDRATELOCDAYABCD123-5NYC2017-01-01ABCD123-5NYC2017-01-02ABCD123-6SFO2017-01-03ABCD123-6DEN2017-01-04ABCD345-4ATL2017-01-05ABCD345-4WAS2017-01-06ABCD123-7CLT2017-01-07ABCD123-7CLT2017-01-08我想要这样的输出:NAMEIDRATELOCSTARTDAYENDDAYABCD123-5NYC2017-01-012017-01-02ABCD123-6SFO2017-01-032017

hadoop - Hive 只获取一个值的最大出现次数

我有一个包含两列的hive表,我想获取出现次数最多的值例如,在我的下表中,一个值出现了两次,而c只出现了一次,这里的值占主导地位,所以我只想要输出中显示的值col1col2aa_value1aa_value2ac_value3bb_value1输出:col1col2aa_value1bb_value1 最佳答案 您正在寻找统计学家所说的众数。一个非常简单的方法是使用带有窗口函数的聚合:selectcol1,col2from(selectcol1,col2,count(*)ascnt,row_number()over(partitio

hadoop - 当文件不在目录中时将文件从 HDFS 加载到配置单元的替代方法

ROWFORMATDELIMITEDFIELDSTERMINATEDBY'${database_delimiter}'LINESTERMINATEDBY'\n'STOREDASTEXTFILELOCATION'${database_location}/Person';这里的person应该是一个目录。而person是part-m文件而不是目录。 最佳答案 如果我对问题的理解正确,Hive确实无法在文件上创建表。它需要是一个目录位置。因此,无论您有什么进程,都需要制作上述目录。例如,无论您有什么映射器进程,您都需要指定一个输出目录,如

database - 在 presto、hive 中查询数组结构

col-1有dep_id(varchar)-112col-2有数组结构[{"emp_id":8291828,"name":"bruce",},{"emp_id":8291823,"name":"Rolli",}]我有一个用例,我需要展平和显示结果。例如,当查询dep_id-112的数据时,我需要在单独的行中显示emp_id。对于上面的数据,查询时我的结果应该是这样的idemp_id11282918281128291823获取数据的查询格式应该是什么? 最佳答案 完成这项工作有几个部分。首先,JSON数据将显示为VARCHAR,因此您

hadoop - 如何对 Hive 中具有不同行的数组中具有相同索引的元素求和

我将通过示例解释我需要在Hive中做什么。我收到两行:像这样的数组的第一行(1,3,6,7)第二行(3,6,7,1)我需要的结果(4,9,13,8)因此,我需要将所有行的所有数组的第一个索引的所有元素加在一起,并与第二个索引相同,依此类推... 最佳答案 基表:hive>selectvaluesfromt1;1,3,6,73,6,7,1按位置展开hive>selectpos,valuefromt1lateralviewposexplode(split(values,","))aaspos,value;0316273101132637