0
各データフレームパーティションの最初の要素を取得する必要があります。 mapPartitionsを使用する必要があることはわかっていますが、使用方法はわかりません。各データフレームパーティションの最初の要素Spark 2.0
注:Spark2.0を使用しています。データフレームがソートされています。
各データフレームパーティションの最初の要素を取得する必要があります。 mapPartitionsを使用する必要があることはわかっていますが、使用方法はわかりません。各データフレームパーティションの最初の要素Spark 2.0
注:Spark2.0を使用しています。データフレームがソートされています。
は、私はそれが次のようになりますと信じて:
import org.apache.spark.sql.catalyst.encoders.RowEncoder
...
implicit val encoder = RowEncoder(df.schema)
val newDf = df.mapPartitions(iterator => iterator.take(1))
は、このデータフレームの各パーティションから1つの要素がかかります。次に、あなたのドライバすなわちにすべてのデータを収集することができます。:
nedDf.collect()
これはあなたのパーティションの数と同じ要素数の配列を返します。私はここにhttp://spark.apache.org/docs/latest/api/java/org/apache/spark/sqlメソッドのシグネチャで探していますスパーク2.0
をサポートするために更新さ
UPD /Dataset.htmlそして、このメソッド呼び出しで2番目のパラメータとしてEncoderが必要なのではないですか? – MaxNevermind
このソリューションを試してみると、spar.implicitsを使用していても、「データセットに格納されている型のエンコーダを見つけることができず、プリミティブ型(Int、Stringなど)および製品型(ケースクラス)はspark.implicits.エラーが続く – syl
mapPartitionsをforeachPartitionに置き換えると、空のリスト()が返されます – syl