原创 scala,實現case class類的時候 業務字段過多導致的異常。不能超過22個字段

一、背景 1、在scala-2.10.x版本種,case class的元素超過22個以後即會編譯報錯 2、有些業務場景下,需要超過22個元素的值   我們項目當中日誌一共有105個字段,在對原始日誌進行處理轉換成parquet文件的過程中

原创 hive中根據身份證號碼獲取年齡、性別

select id_no, id_no, case when length(id_no) = 18 then floor(datediff( from_unixtime(unix_timestamp()

原创 Hive行轉列過程中使用LATERAL VIEW遇到空MAP或者空數組的情況

背景: HIve在進行行轉列的過程中,如果遇到轉的數組或者MAP()的情況,會出現一種特殊情況,就是數據會消失: 原數據:    SELECT             '1' AS id,             MAP() AS

原创 hive的索引:

hive的索引: 索引是數據庫的一種標準技術,hive在0.7版本以後支持索引,只不過hive的索引的性能要比關係型數據庫的差 優點:提高查詢效率,避免全表掃描 缺點:冗餘存儲,加載數據較慢 索引文件的特點:索引數據有序,並且數據量較小

原创 HIVE中常見函數記錄

1、URL解析函數 parse_url(url, partToExtract[, key])  解析URL字符串,partToExtract的選項包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY

原创 spark——比較map和mapPartitions

Spark中,最基本的原則,就是每個task處理一個RDD的partition。 MapPartitions操作的優點: 如果是普通的map,比如一個partition中有1萬條數據;ok,那麼你的function要執行和計算1萬次。

原创 spark學習進步之廣播變量的用法(broadcast)

原理: 問題點 1、參數設置: spark.sql.adaptive.join.enabled   AE 相關,開啓後能夠根據數據量自動判斷能否將 sortMergeJoin 轉換成 broadcast join true

原创 大數據學習-外部表&內部表詳解

外部表和內部表區別和實際運用: 前提知識儲備: 1、hive存儲的數據在hdfs上,建表的時候實際上是在hdfs上創建目錄而已。 2、hive的元數據信息實際上是存在於mysql中(通常的做法) 3、訪問hive的數據是先訪問元數據再根據

原创 大數據-數據傾斜那些事情

    在平時處理大數據量的過程中,會遇到很多數據傾斜的問題,在業務中很多坑也都踩過了,特此記錄一下。    首先,有很多的數據傾斜是是在業務場景中發生的。    其次就是sql或者代碼的問題了。         以訂單數據爲例,在之前的

原创 hive讀取json數組並轉換成多行(列轉行)

背景:在讀取hive表中某一些字段的時候,有的json字符串其中會包括數組,那麼想要讀取這個數組並且轉換爲多行該怎麼操作那? 操作: 1、數據舉例: ["[{\"pet_skill_avg_level\":0,\"pet_gua

原创 拉鍊表實現(demo)

創建庫 create database shop_ods; 創建訂單增量分區表(每天一個分區) CREATE TABLE shop_ods.ods_orders_inc ( orderid INT, createtime STR

原创 Hive表建立分區外部表並且添加每天的增量數據爲分區

一、數據倉庫建設過程中,我們都有每天的增量數據進來,我們需要把增量數據映射到我們的hive表中,但是爲了數據能夠被其他部門共同使用,並且需要對我們的原始數據進行綜合管理,在數據倉庫建設的第一層,我們就要使用外部表進行處理。 (外部表和內部

原创 Hive 行轉列、列轉行

在Hive中使用Hive sql實現表 數據的行轉列、列轉行: 原始數據: 行轉列: select ss.id,ss.name,s1 from test_sql ss lateral view explode(split(ss.ad

原创 Spark Core中解決group by造成的數據傾斜問題

        在大數據開發中,我們可能會遇到大數據計算中一個最棘手的問題——數據傾斜,此時Spark作業的性能會比期望差很多。數據傾斜調優,就是使用各種技術方案解決不同類型的數據傾斜問題,以保證Spark作業的性能。該篇博客參考美團的s

原创 Spark Sql 處理groupby 的數據傾斜問題

寫sql處理使用groupby 產生的數據傾斜問題: import java.util.Random import org.apache.spark.sql.SparkSession object TestUDF { def m