1. 程式人生 > >hive中使用case、if:一個region統計業務(hive條件函式case、if、COALESCE語法介紹:CONDITIONAL FUNCTIONS IN HIVE)

hive中使用case、if:一個region統計業務(hive條件函式case、if、COALESCE語法介紹:CONDITIONAL FUNCTIONS IN HIVE)

CREATE TABLE test_lmj_mdm_tmp AS SELECT guid, CONCAT('adn_',adn_id) AS adn, CONCAT('time_',substr(createtime,12,2)) AS hour, CONCAT('os_',os_id) AS os, case when (country_id = '' or country_id = 'NULL' or country_id isnull) and (province_id ='' or province_id = 'NULL' or province_id is null
) and (city_id = ''or city_id = 'NULL' or city_id is null) then '' when (country_id = '' orcountry_id = 'NULL' or country_id is null) and (province_id<> '' or province_id <> 'NULL' or province_id is not null orcity_id <> '' or city_id <> 'NULL'
or city_id is not null) then '1' else country_id end ascountry_id, case when (province_id = '' or province_id = 'NULL' or province_idis null) ande.parent_region_id <> '' and e.parent_region_id <> 'NULL' ande.parent_region_id is not null thene.parent_region_id else
province_id end asprovince_id, city_id, CONCAT('campaign_',b.campaign_id) AS campaign, CONCAT('interest_',b.industry_id) AS interest, CONCAT('brand_',b.brand_id) AS brand, (CASE connection_type WHEN '2' THEN CONCAT('carrier_','wifi') ELSECONCAT('carrier_',c.element_id) END) AS carrier, CONCAT('appcategory_',d.wizad_category) AS appcategory, uid, SUM(CASE WHEN logtype = '1' THEN 1 ELSE 0 END) AS imp_pv, SUM(CASE WHEN logtype = '2' THEN 1 ELSE 0 END) AS clk_pv FROM ${clean_log_table} a left outer join wizad_mdm_dev_lmj_ad_campaign_industry_brand b ON (a.wizad_ad_id = b.ad_id) left outer join (SELECT * FROMwizad_mdm_dev_lmj_mapping_table_analytics WHERE TYPE = '7') c ON (a.adn_id = c.ad_network_id AND a.carrier_id = c.mapping_id) left outer join wizad_mdm_dev_lmj_app_category_analytics d ON (a.app_category_id = d.adn_category) left outer join (select region_template_id, parent_region_id fromwizad_mdm_dev_lmj_region_template) e ON (a.city_id = e.region_template_id) WHERE a.day < '${pt}' and a.day >= '${time_span}' GROUP BY guid, CONCAT('adn_',adn_id), CONCAT('time_',substr(createtime,12,2)), CONCAT('os_',os_id), case when (country_id = '' or country_id = 'NULL' or country_id isnull) and (province_id ='' or province_id = 'NULL' or province_id is null) and (city_id = '' orcity_id = 'NULL' or city_id is null) then '' when (country_id = '' orcountry_id = 'NULL' or country_id is null) and (province_id<> '' or province_id <> 'NULL' or province_id is not null orcity_id <> '' or city_id <> 'NULL' or city_id is not null) then '1' else country_id end, case when (province_id = '' or province_id = 'NULL' or province_idis null) and e.parent_region_id <> '' ande.parent_region_id <> 'NULL' and e.parent_region_id is not null thene.parent_region_id else province_id end, city_id, CONCAT('campaign_',b.campaign_id), CONCAT('interest_',b.industry_id), CONCAT('brand_',b.brand_id), (CASE connection_type WHEN '2' THEN CONCAT('carrier_','wifi') ELSECONCAT('carrier_',c.element_id) END), CONCAT('appcategory_',d.wizad_category), UID;

相關推薦

hive使用caseif一個region統計業務hive條件函式caseifCOALESCE語法介紹:CONDITIONAL FUNCTIONS IN HIVE

CREATE TABLE test_lmj_mdm_tmp AS SELECT guid, CONCAT('adn_',adn_id) AS adn, CONCAT('time_',substr(createtime,12,2)) AS hour, CONCAT('os_',os_id) AS os, cas

Hive的去重 distinct,group by與ROW_Number()視窗函式

一、distinct,group by與ROW_Number()視窗函式使用方法 1. Distinct用法:對select 後面所有欄位去重,並不能只對一列去重。 (1)當distinct應用到多個欄位的時候,distinct必須放在開頭,其應用的範圍是其後面的所有欄位,而不只是緊挨著它的一個欄位,而且di

面試遇到的問題一個指標重複釋放會出現什麼情況

一個指標重複釋放會出現什麼情況? 我當時的回答是:1.空指標可以重複釋放 2.非空指標(可能大概)會報錯。 由於好幾天沒有寫程式碼,對指標有些生疏了,所以對非空指標的情況不太確定 。 所以剛才編寫了一個小程式碼進行了測試:#include <stdio.h> i

hive執行sql語句SemanticException org.apache.hadoop.hive.ql.metadata.HiveException:

hive> show databases; FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to

79tensorflow計算一個五層神經網路的正則化損失係數防止網路過擬合正則化的思想就是在損失函式加入刻畫模型複雜程度的指標

''' Created on Apr 20, 2017 @author: P0079482 ''' import tensorflow as tf #獲取一層神經網路邊上的權重,並將這個權重的L2正

解決cmd,javac提示javac不是內部或外部命令,但是執行javajava-version正常的問題

沒什麼其他原因,要不就是你安裝JDK不完整,要不就是你配置環境變數錯誤。 配置環境變數: 1.新建一個系統變數。 變數名:JAVA_HOME 變數值:D:\Java 其中變數名可以隨便你寫,變數值必須是你安裝JDK的路徑 2.系統變數(CLASSPATH),

獨立完成一個城市選擇元件阿里前端題目,內附知識點思路

  借用了兩個久經考驗的輪子:fastClick和better-scroll,介意可以就此打住。本文絕對原創,手打,思路清晰,知識不難,不適合大佬觀看,謝謝。   首先說一下,我不是阿里的人,也沒去阿里面試過,這是某微信群裡的一個小夥伴給的,我現在的能力達不到阿里的要求。不過人沒夢想還不如鹹魚,有能力的話還是

iOS7 最佳實踐一個天氣應用案例

在這個兩部分的系列教程中,您將探索如何使用以下工具和技術來建立自己的App: 本教程專為熟悉基本知識的、但還沒有接觸到太多高階主題的中級開發者而設計。本教程也是想要去探索Objective-C函式程式設計一個很好的開始。 開始 開啟Xcode並執行File\New\Proj

iOS7 最佳實踐一個天氣應用案例

開始 你有兩個選擇開始本教程:您可以使用在本教程的第1部分你已完成的專案,或者你可以在這裡下載第1部分已完成的專案。 在前面的教程中你建立了你的App的天氣模型 – 現在你需要使用OpenWeatherMap API為你的App來獲取一些資料。你將使用兩個類抽象資料抓取、分析、

hive與hbase外部表join時記憶體溢位hive處理mapjoin的優化器機制

與hbase外部表(wizad_mdm_main)進行join出現問題: CREATE TABLE wizad_mdm_dev_lmj_edition_result as select *  from  wizad_mdm_dev_lmj_20141120 as w JOI

讓微信小程式在瀏覽器和自己的App執行--自己寫的一個開源框架FreeMina開發。。

FreeMina: An open mina compatible framework for running in browser or webview. 一個相容微信小程式Mina框架的開源框架 從小程式的設計來看,微信正走向封閉生態。我們開發的微信

MFC如何修改檔案檢視FileView已有的樹結構的右鍵選單其相應函式為OnContextMenu,即如何增加/修改/刪除 選單項?

在用VS做MFC程式設計時,新建的工程中自帶了檔案檢視/類檢視/屬性視窗/輸出視窗等內容。檔案檢視FileView中具有初始右鍵選單,如圖所示: 那麼如果想要給這個右鍵選單增加選單項,該如何實現呢? 1. 首先可以看一下這個右鍵選單是在哪裡響應的,開啟FileView

Android的多渠道打包之友盟統計

上篇簡單瞭解了Android中的多渠道打包,這篇主要說正事了---》 如何多渠道打包: 首先,多渠道打包最重要的是可以統計不同渠道下的應用的情況,比如下載量,日活量等等.. 關於統計的話國內有兩個比較出名的第三方統計工具吧:友盟統計和百度移動統計 這篇說的是用友盟,如果想要

python的檔案操作file:內建函式,如seektruncate函式

file開啟檔案有兩種方式,函式用file()或者open()。開啟後讀入檔案的內容用read()函式,其讀入是從檔案當前指標位置開始,所以需要控制指標位置用: 一、先介紹下file讀入的控制函式: seek(offset,where): where=0從起始位置移動,1

三秒+一個小Demo,輕鬆掌握Hive的 列轉行行轉列!!!

閒話少敘,直接開幹! 先看Demo: 一、行轉列 首先,我們需要收集資料,建立一個檔案,內容如下: 一、啟動Hive,建立表並匯入資料: 1.1 建立表 create table test(name string,xingzuo string,xuexing string)

趣談網路協議---雲網路的隔離GREVXLAN雖然住一個小區,也要保護隱私

VLAN 只有 12 位,共 4096 個,對於雲平臺的隔離問題,不夠用。 所以,要擴充套件 VLAN 協議,在原來的包的格式的基礎上擴展出一個頭,裡面包含用於區分租戶的 ID,外層的包的和格式儘量和傳統一樣,很像隧道協議。 底層的物理網路裝置組成的網路為 Un

hiveifcoalesce 去除null值,case when

ref http://blog.csdn.net/mtj66/article/details/52629876 ###################################### if usage select * from (select *,if (b.nam

工廠模式封裝物件的建立在基類定義一個靜態成員函式

當我們發現需要新增新的型別到一個系統中時,最明智的首要步驟就是用多型機制為這些新型別建立一個共同的介面。 用這種方法可以將系統中多餘的程式碼與新新增的特定型別的程式碼分開。新型別的新增並不會攪亂已存在的程式碼...或者至少看上去如此。 起初它似乎只需要在繼承新類的地方修改程

題目輸入一個字串,打印出該字串字元的所有排列。例如輸入字串abc,則輸出由字元abc所能排列出來的所有字串abcacbbacbcacab和cba。

題目:輸入一個字串,打印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。 /** * */ pack