2016-08-29 3 views
0

Mathei Zahariaのthis Keynote: Spark 2.0 talkのようないくつかのソースには、スパークデータフレームがRDDの上に構築されていると記載されています。私はDataFrameクラスのRDDに関するいくつかの言及を見つけました(Spark 2.0ではDataSetを参照する必要があります)。私はこれらの2つのAPIが背後でどのように結びついているかについて非常に限られた理解しか持っていません。DataFrame APIはSparkのRDDにどのように依存しますか?

データフレームがRDDをどのように拡張するか説明できますか?

+1

は、私は非常にあなたが特定のスライドが行うこの[スライド](http://www.slideshare.net/databricks/building-a-modern-application-with-dataframes-52776940) –

+0

@Umbertoを、読んでお勧めしますあなたを参照してください? –

+1

スライド60「データフレーム:Under The Hood」 –

答えて

3

DataBricksの記事Deep Dive into Spark SQL’s Catalyst Optimizer(Spark SQLでのCatalystの使用を参照)によると、RDDはCatalystによって構築された物理プランの要素です。そこで、我々はDataFramesの観点からクエリを記述しますが、最終的にSparkはRDDで動作します。

Catalyst workflow

また、あなたはEXPLAIN命令を使用して、クエリの物理的なプランを表示することができます。

// Prints the physical plan to the console for debugging purpose 
auction.select("auctionid").distinct.explain() 

// == Physical Plan == 
// Distinct false 
// Exchange (HashPartitioning [auctionid#0], 200) 
// Distinct true 
// Project [auctionid#0] 
// PhysicalRDD //[auctionid#0,bid#1,bidtime#2,bidder#3,bidderrate#4,openbid#5,price#6,item#7,daystolive#8], MapPartitionsRDD[11] at mapPartitions at ExistingRDD.scala:37 
関連する問題