原创 hive接入多數據源

  目錄 一、接入JSON格式文件 二、接入mongodb數據 三、接入CSV文件 一、接入JSON格式文件 經常會有接口返回json格式數據,或者json格式日誌文件需要接入到hive中 導入相應jar包來序列反序列化(SerDe)來解

原创 shell腳本實現根據離散日期劃分日期區間

筆者在工作中需要動態傳入日期參數執行腳本,但是將多個日期一個一個傳入會降低執行效率,故根據一定時間段將日期聚合劃分成區間段可以減少傳參執行的次數。此例子以7天爲範圍聚合日期到區間段,可以根據實際需要改進。 案例中的日期文件date.txt

原创 hive根據日期算哪一年的第幾周(年周)以及算周幾星期幾

一、取年周 按照習慣,跨年的週中的在哪一年的天數多就算哪一年的周,所以日期所在的年不一定是周所在的年,比如2016-01-01是2015年53周。 可以通過以下sql判斷跨年的周屬於哪一年,實現得到前一天所在的年周 select yea

原创 在Oracle、MySQL中執行sql腳本生成hive建表語句

生成hive建表語句的首尾只需拼接,主要通過數據庫元數據讀取字段類型轉換爲hive中的類型。 在MySQL中生成hive建表語句:   SELECT CONCAT('create table ',@tbl_name,'(') U

原创 增量抽取到hive過程中的監控

前提:分區字段統一爲ds,適用於常規增量抽取,通過創建和更新時間抽取。   #!/bin/bash # 適用於常規增量抽取,通過創建和更新時間抽取 # 手工填寫以下參數: # 分區表達式,hive語法:pt_expr # 主鍵字段,聯合

原创 hive列轉行,指定字段順序,實現轉置

建測試表 create table test_k_v (k string , v double) row format delimited fields terminated by ','; 插入測試數據 insert over

原创 shell腳本處理周相關的日期計算

#!/bin/bash timer_start=`date "+%Y-%m-%d %H:%M:%S"` # 計時器 timediff(){ duration=$(($(date +%s -d "${3} ${4}") - $

原创 hive取年周

按照習慣,跨年的週中的在哪一年的天數多就算哪一年的周, 可以通過以下sql判斷跨年的周屬於哪一年,實現得到前一天所在的年周 select year(date_sub(next_day(date_sub(current_date,1),'

原创 Python3讀取kafka消息寫入HBASE

kafka消息格式爲(None,[json串])利用Python3有以下3種方式將kafka消息的往HBASE寫入1、直接消費kafka消息寫入HBASE:from kafka import KafkaConsumer import ti

原创 sublime text 3編寫shell腳本執行報$'\r': command not found

在sublime text 3編寫好shell腳本後執行報$'\r': command not found但是Ctrl+F通過正則表達式搜索發現結尾只有換行符並沒有回車符但是通過notepad打開的確能看到有'\r'由於默認設置換行符跟隨

原创 Hive報錯SemanticException Error in parsing

遇到了Hive報錯SemanticException Error in parsing 英文翻譯過來是語義解析錯誤, 檢查了下是在hql中別名後面的.不小心寫成了,導致報錯。 例如下面第一個字段別名後誤寫成了逗號。 select t,c

原创 sublime text 3 個性化設置、常用快捷鍵和插件

修改用戶設置:修改路徑Preferences>Settings>Preferences.sublime-settings--User"default_line_ending": "unix", //換行符默認跟隨系統,換爲Unix的'\n

原创 Python接口實現

使用POS方法傳入一個參數返回MySQL查詢結果from flask import Flask, jsonify from flask import abort from flask import make_response from f

原创 查看hdfs文件夾大小

例如查看ods庫大小:hadoop fs -du -s -h /user/hive/warehouse/ods.db如果要查看其他文件夾則改成該文件夾路徑。去掉-h選項則按Byte單位顯示。

原创 hive命令行顯示當前數據庫

在 hive命令行不知道當前數據庫有時會帶來麻煩。1、可以在hive命令行執行以下語句顯示當前數據庫:select current_database();2、可以設置hive屬性在命令行顯示當前數據庫:set hive.cli.print