Steven's Blog

A Dream Land of Peace!

SparkSQL入门和进阶

常用的函数:

selectlitasgroupByaggsumaswherewithColumncolwhenotherwisejoinwithColumnRenamedisincast$uniongtstructsortdescshoworderByascrepartitionsortWithinPartitionsfilterselectExprpivotexprrow_numberoverpartitionBy

1
2
3
4
5
6
df
.select($"id",lit(1).as("cnt"))
.groupBy("idd")
.agg(sum("cnt").as("total"))
.where("total >=" + cnt2)
.select("uid","total")

UDF:

spark.udf.register

参考链接:

高等数理统计学前言摘录

陈希孺在他的«高等数理统计学»一书的前言中, 关于学习方法的建议,真的让人十分认同。 我们自己或者观察别人就会发现,很多时候对一个概念的理解很肤浅,又或者以为对理论的内容已经知道了,但是要做题或者真的上手的时候,有会不知从何下手。 现在将陈希孺的建议摘抄在下面, 以供自勉。

书中习题及提示占了近半的篇幅,从写作时间言,则占了四分之三以上. 总计得题五百,若计小题,则不止千数. 其中除少量选摘自有关著作外,大半属作者自创. 有时一题之设,累日始成,可以说倾注了不少心力. 这样做完全是因为,多做习题,尤其是多做难题,对掌握并熟练数理统计学基本的论证方法和技巧,有着不可替代的重要性. 如果通过一门基础课的学习,只是记住了若干概念,背了几个定理,而未能在这方面有所长进,那就真是”入宝山而空返”了. 技巧的熟练固非一日之功,但取法乎上,仅得乎中,必须在开始学基础课时就设定一个高目标. 日后进入研究工作,克服难点的能力如何,相当一部分就取决于在这上面修为的深浅了. 同时,经验表明,在打基础的阶段因忽视习题而导致素质上的缺陷,在日后不易弥补,或事倍功半.

笔者在学生时代及其后的几年中,对做习题未给予足够重视. 当时误认为做题费时间,不增长新知识,不如多读些书,占得实地. 以后试做研究工作,就日渐感到其不良后果,表现在碰到问题办法少,容易钻死胡同,克服难点的能力弱,以致对自己缺乏信心. 对许多方法,都似雾里看花,似曾识面,而不能切实掌握和灵活运用. 有如十八般兵器,样样都见过,但拿到手里,就使不动或很笨拙. 欲以此克敌制胜,自难有成. 以后稍明白了这一点,做了些亡羊之补,终究晚了一些,所谓”困而学之,又其次也”. “熟能生巧”,前人的经验不诬. 而要达到”熟”,舍大量做题,无他捷径可循. 几十年来,审了大量的杂志稿件,每见某些工作,由于未经深思,为一个并不难克服之点加上了若干不必需的繁复条件,从而使整个工作流于肤浅. 这根子,大略也在于早先在习题上下的工夫不够,以致难以产生别出心裁的想法.

以本书的习题量,要求学员在课程时间范围内做完,恐不现实. 但作者本意并非把这一组题全作为课内习题,而是把它作为”打基础”这个工作的一环,一两年、两三年完成都可以,有空就做一点. 根据题的难易,将其分为三类:加”*“号的难度较大,加””号的相对容易,教师可考虑作为课外作业;不加任何记号的,其难度介乎二者之间. 对自学者、已经研究生毕业的青年教师和研究者,可利用这组题测试一下自己解题的能力如何. 可能会有一种意见,认为这组题过于偏难. 作为课程作业,这的确如此. 但笔者觉得,从”打基础”,锻炼技巧和提高能力诸目标看,非做难题不行,这道理正如训练运动员要加大运动量,做高难动作,不然,在训练的过程中舒服了,就别指望出好成绩.

各题都有详细提示,大多数较难的题都给出了完整解答. 这是因为,鉴于这些题的难度,需要有一个解答文本在,以作为依据. 对读者而言,笔者切望这部分是备而不用、备而少用. 如碰到一个题一时做不出来,宁肯暂时搁一搁,也不要轻易翻看解答. 譬如登山,经过艰苦努力上了峰顶,自有其乐趣和成就感. 反之,如在未尽全力之前就任人抬上去,则不惟无益,实足以挫折信心.

以上就习题一事唠叨了半天,读者也许烦了,就此打住. 千言万语,归结到一点:希望大家多做题,做难题. “千里之行,始于足下”,就从今日开始吧!

一些关于RNN和LSTM和GRU的阅读材料

Illustrated Guide to Recurrent Neural Networks

Illustrated Guide to LSTM’s and GRU’s: A step by step explanation

直觉理解LSTM和GRU

RNN梯度消失和爆炸的原因

LSTM如何解决梯度消失问题

人人都能看懂的GRU

人人都能看懂的LSTM

循环序列模型

第五门课 序列模型(Sequence Models)

Time Series Prediction with LSTM Recurrent Neural Networks in Python with Keras

Understanding LSTM Networks

Implementing a GRU/LSTM RNN with Python and Theano

Introduction to RNNs

Implementing a Neural Network from Scratch in Python

Speeding up your Neural Network with Theano and the GPU

CS231 On Gradients And BackPropagation

Calculus on Computational Graphs: Backpropagation

How the backpropagation algorithm works

Numpy Tutorial From CS231

卷积神经网络数学原理解析

Interpretable Machine Learning