1

RDD APIを使用してこのような列を収集できます。sparkはデータフレームから配列[行]ではなくArray [行]として収集します

df.map(r => r.getAs[String]("column")).collect 

しかし、当初はデータセットを使用していたので、APIレベルを切り替えることはできません。 df.select("column).collectは、演算子が動作しなくなったArray[Row]を返します。 Array[T e.g. String]に直接集金するにはどうすればよいですか?

+0

あなたを返しますが、あなたは作品が、私は通常の答えを投稿します場合df.select( "列)の.as [文字列]は、メモリからの書き込み?.collect''みました:) –

+0

選択された列の型の配列、例えば文字列 –

答えて

5

データセット(Sparkバージョン> 2.0.0)では、データフレームをデータセットに変換して収集するだけで済みます。

df.select("column").as[String].collect() 

アレイ[文字列]

+1

niceそれはうまくいきますが、なぜデータセットのスキーマから自動的に推論された型が自動的にはありませんか? –

+0

@GeorgHeiler yes and not :)推測されますが、選択すると多くの列名を入れることができるので、Row [String]になります。Converterは自動的にStringに変換されます –

関連する問題