2017-11-05 21 views
-2

DataFrame dfの列にcolumnがあり、columnをベクトル(たとえばDenseVector)に変換してベクトルと行列の製品で使用できるようにしたいと考えています。Spark:DataFrame列をベクトルに変換する

注意:ベクトルの列は必要ありません。私はベクトルオブジェクトが必要です。

これを行う方法?

vectorAssembler関数()が見つかりましたが、これは一部のDataFrame列をベクトル列に変換するため、これはまだ役に立ちません。これはDataFrame列です。私の望む出力は代わりにベクトルでなければなりません。

+1

希望の出力とともにいくつかのサンプルデータを提供してください – desertnaut

+0

https://stackoverflow.com/questions/42138482/pyspark-how-do-i-convert-an-array-ie-list-column- to-vector – MaFF

+0

私はこれが重複しているとは思わない。私がうまく理解していれば、この他の投稿はDF列の型を変換しようとしています。私はむしろDFから列を抽出してベクトルに変換する必要があります。これはもはやDFの列ではありません。 –

答えて

2

方法:

DenseVector(df.select("column_name").rdd.map(lambda x: x[0]).collect()) 

が、それは任意の実用的なシナリオでは意味がありません。

スパークVectorsは、には配信されないため、1つの(ドライバ)ノードのメモリにデータが収まる場合にのみ適用されます。この場合、Spark DataFrameを処理に使用しません。

+0

あなたは絶対に正しいです - 意味がありません... – desertnaut

+0

数値列を持つDFを持っていると仮定し、行列とこの列の間の積を計算する必要があります。どうすればこれを達成できますか? (DFの数値行でも同じことが言えます)。 –

関連する問題