HiveSQL仕上げ

1. JSON文字列処理機能json_tuple

//外部表を作成し、文字列全体のJSONリード
使用hive_01と、
外部表weibo_json(JSON文字列)LOCATION 'USR /試験/ weibo_info /'を作成し;
//ロードデータ
ロードデータのローカルINPATH「の/ usr /試験/ testdate / weiboを「テーブルのweibo_json INTO;
weibo_jsonからSELECT *;
//統計はマイクロブログのない内部テーブル作成
(weibo_infoテーブルを作成
beCommentWeiboId文字列、
beForwardWeiboId文字、
catchTime文字列を、
commentCount int型、
コンテンツのString、
CREATETIME文字、
INFO1文字、
INFO2列、
情報3列、
文字列mlevel、
musicurl文字列、
pic_list文字列、
praiseCount int型、
reportCount int型、
ソース文字列、
userIdを文字列、
videoURL文字列、
weiboId文字列、
「\ tの」によって終了weiboUrl列)行形式区切られたフィールド。

// json_tuple(「文字列」、各フィールド名に対応するJSON文字列)

 

 

 //文字列は、データテーブルをロードするために取らweibo_info

(サブストリングをjson_tuple選択weibo_info上書きテーブルを挿入(a.json、2、長さ(a.json)-2)、 "beCommentWeiboId"、
"beForwardWeiboId"、 "catchTime"、 "commentCount"、 "コンテンツ"、 "CREATETIME"、」 INFO1" 、 "INFO2"、 "情報3"、 "mlevel"、
"musicurl"、 "pic_list"、 "praiseCount"、 "reportCount"、 "ソース"、 "はuserId"、 "videourl"、 "weiboId"、 "weiboUrl" )weibo_jsonから。

2.その他の操作

(新しいパーティション前のデータではない)//パーティションが変更
テーブルtest_partitionパーティション(年= 2016変更 )設定場所「/user/hive/warehouse/new_part/hive_01.db/test_partition/year=2016を」;

//メタ情報データベースに同期構成情報テーブル変更
MSCK修理テーブルtest_partitionを。

//タイムスタンプの日付形式に変換

FROM_UNIXTIME(タイムスタンプ、 'YYYY-MM')。

FROM_UNIXTIME(タイムスタンプ、 'YYYY-MM-DD')。

//複雑なデータ型のテーブルと

テーブルTEST02が(登録
IDのINT、
名前ストリング、
趣味配列の<string>、//配列型
DECS構造体<:INT、ADDR年齢 、//:文字列> への配列に応じて設定データに対応するオブジェクトの種類
他は<文字列、文字列をマップ>)//マップタイプは、K、Vの格納されている
行は、フォーマットDELIMITED
シンボル//列分割「」によって終了フィールドを
//デリミタアレイ: 『』によって終了コレクションアイテム
; - 『』によって終了MAPキー / /セット区切り文字

//複雑なデータクエリのタイプ

選択ID、名前、趣味[ 1 ]、構造体。年齢、マップ[ 值kの TEST02から]。

 

 

EN:内側は、(条件を満たしているデータの両方のテーブルを返すために)に参加します

外側左:(左表参照データが返され、権利テーブルリターンヌルが存在しない)にoutter JONを残し

右の外部結合:右outter JONを上(右を参照テーブルとして、データ戻り、テーブルが戻るヌル残されていません)

完全な接続:フルoutterは上の参加(データの2つのテーブルが返され、2つのクエリ全体テーブルに相当)

左の接続:左半に参加する(データのみ左の表を返し、言葉にフィルタを設定することができます右の表は、INの相当/サブクエリをEXISTS)

SELECT COUNT(u.uid)Uが半u.uid = w.useridにW weibo_info参加左user_login_infoから。

 

3.ソート

所望であれば、最終結果は、グローバルランキング結果に組み合わされる半順序を並び替え、並べ替えられた各内部減速は、唯一のマージソートは、次に、実際の数の減速に応じて設定することができます

セットmapreduce.job.reduces = 5; //設定減速の数(デフォルトは3)

配布及び配列決定によってソートすることによって使用することが鍵を配布するように設定パケットフィールドによって行われ、ハッシュデータは、機械減速でソート各データであろう次いで並べ替え局所的に異なる減速機に分配されます。

フィールドとが同一の使用によってソートすることによって配布する場合、使用されるカラム、昇順にソートされ、デフォルトのデータの両方を指定することによって、クラスタと略記することができます。ASC / DESCを指定することはできません

 

おすすめ

転載: www.cnblogs.com/TFE-HardView/p/11486868.html