1

パーティション分割のためのJava APIを見つける手助けをしてくださいsalesデータセットNのサイズが同じですか?等しいサイズでは、同じ数の行を意味します。スパークデータセットカスタムパーティショナー

Dataset<Row> sales = sparkSession.read().parquet(salesPath); 
sales.toJavaRDD().partitions().size(); // returns 1 
+2

可能な複製に記載されています同じ数の要素?](http://stackoverflow.com/questions/23127329/how-to-define-custom-partitioner-for-spark-rdds-of-equally-sized-partition-where) –

+0

@ブラッドリーカイザーノー、私は答えが2つの理由のために悪いと確信しています:1)答えはパーティショナーのコードを表示しますが、RDD APIにカスタムパーティショナーを渡す方法を指さないでください。 on 2)パーティショナーコードがScalaにあり、Scala APIがJava APIと異なる場合があります –

答えて

2

AFAIKカスタムパーティショナーは、データセットではサポートされていません。スパーク2+のデータセットAPIとデータフレームAPIのアイデアは、カスタムパーティショナーに干渉する必要性を抽象化することです。 Data-skewを扱う必要があり、カスタムパーティショナーだけが選択肢になる場合は、RDD操作のレベルを下げることにします。例えばのために

Facebook use-case-studySpark summit talk related to the use-case-study

RDDSのためのパーティを定義するために、それはよく、各パーティションが持っている同じサイズのパーティションのスパークRDDSのカスタムパーティショナを定義するには、[方法のAPI doc