統計踩坑日記:
1.同乙個包,同乙個類下面的方法可以直接呼叫,例項:
def stat (statdate : string):dataset[row] =
def newstat(stat:string):dataset[row] =
2.scala可以向python一樣優美,不需要各種呼叫,各種巢狀
例項:val df1 = session.sql(s"......")
df1.createtempview("df1")
val df2 = session.sql(s"select ...... from df1")
df2.createtempview("df2")
val df2 = session.sql(s"select ...... from df2")
以此類推。。。。
3.scala使用sql傳值很簡單,但有一點小彎彎繞繞
例如:val df1 = session.sql("select * from tempview where dt = $'dt'")
很遺憾,scala並不支援這樣傳值哦
正確做法是:
import session.implicits._
val df1 = session.sql(s"select * from tempview where dt = '$'")
隱式轉換和's' 和'{}'是必須的。
4.聚合函式禁止「套娃」
val df = df1.agg.sum(expr(sum()))
畫個大叉,但支援
val df2 = df1.agg(sum(expr("")) as ...)
val df3 = df2.agg(sum(expr("")) as ...)
6.方法一呼叫方法二,這倆方法別寫太遠,否則全文找還找不到就很難受
7.多嘗試使用withcolumn方法,不用多次建立dataframe
例項:val df = df1.withcolumn("重新命名",lit(原欄位.function))
8.sparksql使用聚合函式和groupby有點神奇的地方,有個first別忘了加
例項:val df1 = sql("select distinct first(orgno),first(tgno),first(tgid),first(dt),sum(case when error > 0 then 1 else 0 end) as error_cnt from temp group by tgno,dt")
不寫會報這樣的錯
org.apache.spark.sql.analysi***ception: expression 'temp.`orgno`' is neither present in the group by, nor is it an aggregate function. add to group by or wrap in first() (or first_value) if you don't care which value you get.;;
9.有時候找不到**錯了,不如想想有沒有可能是**少了個**的return
10.細心,做大資料的一跑程式幾小時,沒那麼多次機會給你重來
11.如果有改**的需求,不用強求和原作者的風格一致,你可以按照自己的風格來,記得寫好注釋,防止後面人看不懂。
React Native 踩坑日記
問題 於示圖 findpage title 發現 解決辦法 react native 中無論是 tabbarios.item 還是 tabbar.item 必須有且只有乙個元件,說白了就是需要有子元件的存在,並且只存在乙個子元件。findpage title 發現 onpress selected ...
arcgis 踩坑日記
專案組決定用arcgis做地圖服務的時候我還是有些小期待的,因為以前沒弄過,我對所有不熟悉的技能都感興趣,於是有了一條踩坑之路,加班踩坑,小問題踩兩天坑,等等.先談一下自己的體會吧,arcgis for js 我真的沒覺得多難,上手就用,不會就查,官網例項太全了,我覺得坑多的地方是在arcgis m...
Supervisor 踩坑日記
安裝 supervisor 後,編輯好 etc supervisor conf.d conf發現啟動都成問題 報錯 supervisor.service failed with result exit code 經過我個人的多次解除安裝再重安裝的經驗來看,pip3安裝是為了能夠讓 superviso...