データフレームdf
のVectorUDT
列がfeatures
となっています。どのようにして最初の要素のように、列の要素を取得できますか?Spark DataFrameのVectorUDT列の要素にアクセスする方法は?
私は、次の
from pyspark.sql.functions import udf
first_elem_udf = udf(lambda row: row.values[0])
df.select(first_elem_udf(df.features)).show()
をやってみましたが、私はnet.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict(for numpy.dtype)
エラーを取得します。代わりにfirst_elem_udf = first_elem_udf(lambda row: row.toArray()[0])
を実行すると同じエラーが発生します。
また、私はexplode()
を試しましたが、配列やマップタイプが必要なのでエラーが発生します。
これは一般的な操作である必要があります。 float
へ
これは私のためには機能しませんでした。 – user2205916
@ user2205916ここに再現可能な例があります。何が__働いていないかを説明するケア? :) – zero323
私は 'lit(1)'を 'lit(0)'に変更するまで、これは私にとってはうまくいかなかった...あなたの再現可能な例から推測できる。ほんとありがと! –