Spark를다루다보면다음과같은세가지API를접하게됩니다。DataFrame, Dataset그리고RDD의세가지입니다。
抽样,즉弹性分布式数据集란분산형컴퓨팅을포함한레코드컬렉션으로본질적으로내결함성이있고변경불가능합니다。저수준API와병력방식으로운영할수있는데,이경우지연기능때문에火花작업이빠른속도로수행됩니다。Rdd가지원하는작업유형은두가지입니다。
Rdd를다루기로선택했다면,모든Rdd를각각최적화해야합니다。또한抽样数据集는나DataFrame과는달리수집된데이터의스키마를추론하지않으므로사용자가지정해야합니다。
数据帧은이름이명명된열아래에속하는행의분산형컬렉션입니다。간단히말하면,열헤더를포함한Excel시트와같다고보면됩니다。아니면관계형데이터베이스의테이블이라든지,R이나Python에서는DataFrame과동급이라고생각하면됩니다。여기에는rdd와공통되는세가지특징이있습니다。
Spark에서DataFrame을만들려면몇가지방법이있습니다。
DataFrame API의주된단점은컴파일링시간을안전하게지원하지않는다는점입니다。따라서데이터구조를모르는경우사용자에게한계가생깁니다。
数据集는강력한형식(强类型),변경불가능한개체컬렉션으로이는관계형스키마에매핑됩니다。数据集는JVM개체를사용하여만들고복잡한기능적인변환을사용해조작할수있습니다。数据集를만드는방법은두가지입니다。
数据集의주된단점은문자열로타입캐스트(铸字)해야한다는점입니다。