草庐IT

hadoop - 重写 Hive IN 子句

我正在尝试在HIVE中执行此子查询,但我收到错误消息,指出我的HIVE版本不支持子查询,不幸的是,是的,我们使用的是旧版本的HIVE。selectcol1,col2fromt1wherecol1in(selectxfromt2wherey=0)然后我像这样使用左半连接重写了子查询,selecta.col1,a.col2FROMt1aLEFTSEMIJOINt2bon(a.col1=b.x)WHEREb.y=0如果我不给出where条件,此查询运行良好,但当我尝试在where条件中使用b.any列或在select子句中使用b.any列时,它无法识别表b。抛出这个错误-Errorwhile

java - WritableStringObjectInspector 不能转换为 BooleanObjectInspector

每次我从我的java程序运行一个具有OR条件的配置单元查询时,我都会收到以下错误,Causedby:java.lang.ClassCastException:org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspectorcannotbecasttoorg.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspectoratorg.apache.hadoop.hive.ql.udf.generic.

sql - 如何删除配置单元中特殊字符后的值

我有一个列状态为的配置单元表**state**taxes,TXWashington,WANewYork,NYNewJersey,NJ现在我想把状态列分开,我想把它写在新的列中**state****code**taxesTXWashingtonWANewYorkNYNewJerseyNJ 最佳答案 selectsplit(state,',')[0]asstate,ltrim(split(state,',')[1])ascodefrommytable+------------+------+|state|code|+----------

hadoop - 从日期字段 Hive 获取星期几

需求是从日期字段中获取星期几,日期字段是"MM/dd/yyyy",需要转换成"yyyy-MM-dd"我认为可以使用Unix_Timestamp完成日期转换但是如何从修改日期字段中获取星期几?在这方面的任何帮助都是有用的 最佳答案 从Hive2.2.0开始,使用extract(fieldFROMsource)获取星期几。例如:selectextract(dayofweekfrom"2016-10-2005:06:07")结果为5。更多信息请引用日期函数手册:https://cwiki.apache.org/confluence/dis

hadoop - 如何按点和相应的多边形连接 2 个配置单元表?

我有2个Hive表。表1在2列中有经度和纬度,第二个表有WKT格式的多边形信息,如下所示:POLYGON((6.9361479.842882,6.95019879.856958,6.94363879.877815,6.93179579.877129,6.9256679.861507,6.91918479.861507,6.91790679.847603,6.9361479.842882))我想找出表1中的哪些点属于哪些多边形。我正在尝试使用Hadoop的ST_Geometric库(https://github.com/Esri/spatial-framework-for-hadoop/

配置单元中的日期差异,差异应在 hh :mm:ss 中

我试图找出连续行中两个日期之间的差异。我在配置单元中使用窗口函数,即lag。但不同之处在于,输出格式应为hh:mm:ss。例如:日期1是2017-08-1502:00:32日期2是2017-08-1502:00:20输出应该是:00:00:12我试过的查询:selectfrom_unixtime(column_name),(lag(unix_timestamp(from_unixtime(column_name)),1,0)over(partitionbycolumn_name)-unix_timestamp(from_unixtime(column_name)))asDuration

sql - Hive 中是否有更简单的方法将不同的 JSON 键合并为一个?

我正在尝试使用Hive解析json字符串,我注意到某些值有两个不同的键,例如:get_json_object(json_string,'$.user_name')get_json_object(json_string,'$.User_Name')有没有办法检查一个或另一个键是否存在,然后将值插入到解析表中?我当前的脚本选择两者并插入到一个表中,然后另一个脚本检查其中一个键的值是否为空并执行casewhen语句。 最佳答案 selectcoalesce(get_json_object(json_string,'$.user_name'

apache - 创建分区 View 时 Hive 出错

我有一个“日志”表,该表当前按年、月和日进行分区。我想在“日志”表的顶部创建一个分区View,但遇到了这个错误:hive>CREATEVIEWlog_viewPARTITIONEDON(pagename,year,month,day)ASSELECTpagename,year,month,day,uid,propertiesFROMlog;FAILED:SemanticException[Error10093]:RightmostcolumnsinviewoutputdonotmatchPARTITIONEDONclause创建分区View的正确方法是什么?

hadoop - Hive 在多列上对 null 的奇怪处理?

这个查询:SELECTcount(distinctfield1,field2,field3,field4)FROMSOME_TABLE返回与此查询不同(更小)的计数:SELECTcount(distinctcoalesce(field1,"null"),coalesce(field2,"null"),coalesce(field3,"null"),coalesce(field4,"null"))FROMSOME_TABLE我希望结果是相同的。对此有解释吗? 最佳答案 您看到不同结果的原因有两点:COUNT(DISTINCT(...)

hadoop - 作为 Map only 作业执行的 Hive 查询

最近遇到一个问题WillallHivequeriesbeconvertedintomapandreducejobs?我知道Hive查询被转换为一系列MapReduce作业。我不是在谈论在Hive中调用外部脚本。是否存在不需要reduce作业且Hive可以通过Map作业本身获得结果的情况。你有什么想法? 最佳答案 是的。这仅取决于您正在运行的作业类型。例如,如果您有一个具有架构(姓名、ID、部门)的员工表。以下查询运行仅map作业。Mapper从配置单元表中接收(Name,id,department)作为值,并发出Name和Nullw