原创 spark DataFrame用法

rdd dataframe dataset互轉 DataFrame/Dataset轉RDD: val rdd1=testDF.rdd val rdd2=testDS.rdd RDD轉DataFrame: import spark.im

原创 mysql字符串轉數字

每次用的時候都查,索性記錄下 3種方法 select "123"+0 select CAST("123" as SIGNED) select CONVERT("123",SIGNED)  

原创 git刪除提交記錄

1. 運行   git checkout --orphan new_branch 2.添加所有文件 git add -A 3.提交更改 git commit -am "commit message" 4.刪除分支 git branc

原创 mysql性能排查

1.QPS(每秒Query量)  每秒查詢量,多次查詢diff QPS = Questions(or Queries) / seconds  mysql > show  global  status like 'Question%'; 

原创 HMAC解密python和java版互轉

默認情況下python庫將使用MD5算法,因此你需要在Java中使用HmacMD5算法 pyhton版: new後面參數爲加密的key,以及待解密的字符串,第三位默認md5,可以選擇其他比如 'md5', 'sha1', 'sha224'

原创 mysql清理查詢日誌(清理general_log_file)

mysql自帶只有清理binlog文件配置,沒有清理查詢日誌的配置,因此自己寫了個定時清理general_log_file的腳本 general_log_file可以存放表裏和文件裏,由於量很大,不建議放表裏  以下腳本定時執行可以清理g

原创 spark日誌輸出級別

1.終端修改 在spark-shell或者pyspark終端下可使用下面命令來改變日誌級別sc.setLogLevel("WARN") # 或者INFO等 2.修改日誌設置文件 通過調整日誌的級別來控制輸出的信息量.減少Spark She

原创 pycharm同時加載多個項目(多種方法,親測實用)

用pycharm的時候想加載多個項目,多個項目對應不同的git倉庫,兩種方式加載多個項目 1.第一種 打開一個新項目,選擇attach,後效果如下 2.第二種    

原创 hive中udtf編寫和使用(完整demo)

已有的字段名和值: pos 0-1-2 oreq 125_126-127_128-129_130  sreq 125_126-127_128-129_130 sres 125-127-129_130 sans 125-127-129 最終

原创 awk實現groupby和join

1.awk實現join 最終要實現類似   select   a.a,a.b,b.name   from a left join b on a.id=b.bid  group by  a.a,a.b,b.name shell的寫法

原创 awk的常規使用

awk中變量說明: 變量名 含義 ARGC 命令行變元個數 ARGV 命令行變元數組 FILENAME 當前輸入文件名 FNR 當前文件中的記錄號 FS 輸入域分隔符,默認爲一個空格 RS 輸入記錄分隔符 NF 當前記錄裏域個數 NR 到

原创 mysql剛裝好後的一頓操作

mysql裝好後root@localhost的密碼在安裝信息裏,登陸後 1.修改root密碼的兩種方式 UPDATE mysql.user SET password = PASSWORD('newpass') WHERE user =

原创 拉鍊表思想(緩慢變化維)

問題:有一類問題,比如像用戶修改了訂單狀態,需要看每個狀態的生效時間範圍等等,這類因爲維度變化,又需要反映歷史變化的情況可以使用拉鍊表 思路:業務系統當用戶操作的時候記錄用戶訂單狀態的操作時間,如下建表order_update,還有最終呈

原创 sql用戶留存率

 每天的7日用戶留存情況,從一段時間用戶第一次登陸算起的留存情況 SELECT first_day, sum(case when by_day = 0 then 1 else 0 end) day_0, sum(

原创 連續登陸sql實現

背景 已知:有個用戶登陸表,包含用戶id和用戶登陸時間,表名users 求:用戶連續登陸天數,和用戶最大連續登陸天數 思路:先把每個用戶按照登陸時間排序rn,在用登陸時間減rn得到一個值,如果值一樣,說明是一段的連續登陸,然後把不連續的天