2017-09-06 16 views

答えて

2

それはRDDのAPIは、より一般的であり、実際にはSQLのAPIである

もはや我々はRDDを必要としないと思われる拡張子の束とRDDのAPIの上に構築されます。

RDDは高価なので、避けるべきだと思われます。

RDD APIは本質的に高価ではありません。 SQL APIと同じ最適化は提供されません。 RDDの上に高性能アプリケーションを構築することもできます(例:org.apache.spark.mlを確認してください)。

Spark2でRDDを使用する良い時期は誰かが説明できますか?

エンドツーエンド型の安全性が必要な場合や、エンコーダが内蔵されていないタイプで多く動作する場合、RDD APIは当然の選択です。

実行順序が重要な場合(SQLで独自の計画ルールを作成することはできますが、それはもっと手間がかかります)、低レベルの制御(ユーザー定義のPartitionersなど)が必要な場合があります。

+2

RDDがDataset/DataFramesより優れているクリティカルエリアは、spark MLパッケージについて議論するときに微妙に参照されるような反復アルゴリズムです。 Spark ML(元のRDD MLLibではない)APIはデータセットを参照していますが、実際にはRDDを使用する傾向があり、最後にデータセットに変換されます。 Catalystオプティマイザは並列化されないため、反復アルゴリズムの最適化は実用的ではありません。 – Garren

関連する問題