草庐IT

if-cases

全部标签

hadoop - 关于 PIG 的查询 - 如何在 ForEach 中放置类似 if 的条件

我有一个关于编写pig脚本的查询RESULT_SOMETYPE=FOREACHSOMETYPE_DATA_GROUPEDGENERATEflatten(group),SUM(SOMETYPEDATA.DURATION)asduration,COUNT(SOMETYPEDATA.DURATION)ascnt;在这里我想用一些数字替换SUM(SOMETYPEDATA.DURATION)if(0>Sum>1000)thenput1if(1001>Sum>2000)thenput2if(2001>Sum>3000)thenput3如何在pig身上实现这一目标请推荐

hadoop - hive : Replace string/pattern in row if it exists else do nothing

我有一张表A,其中包含ID、姓名、年龄。>idnameage>{20}Joan12>3James12>12Jill12>{54}Adam12>{10}Bill12我需要移除{}周围的“id”字段。我试过这个:translate(regexp_extract(id,'([^{])([^}])',2),'{','')它有效,但对于没有{}的值返回null。id312有没有办法让我得到输出为???id203125410 最佳答案 您可以使用regexp_replaceudf来删除“{}”,例如:selectregexp_replace(i

sql - case 语句中的 Hive 摘要函数

我正在尝试编写一个简单的Hive查询:selectsum(casewhenpot_sls_q>2*avg(pit_sls_q)then1else0)/count(*)fromprd_inv_fnd.item_pot_slswheredept_i=43andclass_i=3wherep_wk_end_d=2014-06-28;这里pit_sls_q和pot_sls_q都是Hive表中的列,我想要pot_sls_q的记录比例超过平均值的2倍pit_sls_q。但是我得到错误:FAILED:SemanticException[Error10128]:Line1:95Notyetsuppor

regex - CASE WHEN - LIKE - Hadoop Hive 中的 REGEXP

我想使用CASEWHEN、LIKE和正则表达式在配置单元表中编写查询。我使用了regexp和rlike,但我没有得到想要的结果。到目前为止,我的尝试如下selectdistinctendingfrom(selectdate,ending,name,count(distinctid)from(selectCONCAT_WS("/",year,month,day,hour)asdate,id,name,casewhentype='TRAN'then'tran'wheneventsregexp'%[:]no_reply[:]%[^o][^n][:]incomplete[:]%'andtype

date - 带有 case 语句的 Hive 查询

我正在尝试在我的数据中使用一个名为priority的字段来驱动DATE_ADD函数的数值。从本质上讲,优先级决定了问题超出SLA的天数。我试图通过说来使用这个优先级:伪代码-Ifpriority=p0,DATE_ADD(date,INTERVAL1day)ElseIfpriority=p1,DATE_ADD(date,INTERVAL15day)这是我正在尝试的代码:SELECTjira.jiraidas`JIRA/FR`,jira.priorityas`Priority`,DATE_FORMAT(jira.created,"MM/dd/Y")as`DateJiraCreated`,D

hadoop - pig : Select records from a relaltion only if it is present in another relation

我有以下电影数据库的数据集:Ratings:UserID,MovieID,RatingMovies:MovieID,Genre我使用以下方法过滤掉类型为“Action”或“war”的电影:movie_filter=filterMoviesby(genrematches'.*Action.*')OR(genrematches'.*War.*');现在,我必须计算war片或Action片的平均收视率。但是评级存在于评级文件中。为此,我使用查询:movie_groups=GROUPmovie_filterBYMovieID;result=FOREACHmovie_groupsGENERATE

hadoop - 如何在 pig 中使用 CASE 语句?

我需要以下输出。NE50SE80我正在使用pig查询来根据地区统计国家/地区。c1=groupcountrybyzone;c2=foreachc1generateCOUNT(country.zone),(casecountry.zonewhen1then'NE'else'SE');但我无法实现我的输出。我收到如下错误:2016-03-3013:57:16,569[main]ERRORorg.apache.pig.tools.grunt.Grunt-ERROR1039:(Name:EqualType:nullUid:null)incompatibletypesinEqualOperato

hadoop - 为什么 hive 不允许在 JOIN 子句中使用 >、>=,但您可以使用 JOIN ON IF(a > b, 1, 0) = 1 来绕过它?

只是想知道为什么Hive不允许在JOIN子句中使用>,>=条件,但您可以执行JOINONIF(a>b,1,0)=1来绕过它。如果性能不是问题,是否有时可以使用JOINONIF(a>b,1,0)=1? 最佳答案 因为:Hivedoesnotsupportjoinconditionsthatarenotequalityconditionsasitisverydifficulttoexpresssuchconditionsasamap/reducejob.来自HiveLanguageManuel

hadoop - 无法在配置单元查询中的 case 语句中聚合

我有如下数据:SELECTmtrans.merch_num,mtrans.card_numFROMa_sbp_db.merch_trans_dailymtransINNERJOINa_sbp_db.product_holdingphONmtrans.card_num=ph.acc_numINNERJOINa_sbp_db.cust_democdemoONcdemo.cust_id=ph.cust_idWHEREmtrans.transaction_dateLIKE'2017-09%'ANDperson_org_code='P'ANDROUND(DATEDIFF(mtrans.trans

hadoop - if-else 中的 block 语句

Hive支持条件语句-https://cwiki.apache.org/Hive/languagemanual-udf.html#LanguageManualUDF-ConditionalFunctions但是,我希望使用block条件语句。例如,我有两个表A和B,它们具有相似的列(尽管列名不相同)。我希望从A和B创建一个新表,使B具有更高的优先级。因此,如果B中存在一行,我希望从B中选择它,否则从A中选择该行。即SELECTIF(B.idNULL,(B.idasid,B.value1asvalue),(A.idasid,a.value2asvalue))FROMAFULLOUTERJ