0

私はpysparkデータフレームを持っており、スキーマは次のようになります。sparkデータフレーム内の既存の構造体に要素を追加する

root 
|-- useragent: string (nullable = true) 
|-- properties: struct (nullable = true) 
| |-- browser: string (nullable = true) 
| |-- device: string (nullable = true) 

私はudf + withColumnを使用して、ユーザーエージェントの詳細情報を抽出しています。しかし、私は新しい列に作成している追加のプロパティだけを保存することができます。私はそれを構造体自体に追加する方法はありますか?

私は、スキーマを変更したが、それは、私はすでにそれがRDDにこれを変換するために、より理にかなって

df = df.schema['properties'].dataType.add(StructField('type', StringType())) 

を存在する他のプロパティから必要なすべてのデータを転送しないのですか?

答えて

0

データを選択していないため、このコードを使用してデータを取得することはできません。 この操作では、Schemaプロパティにアクセスして何らかの方法で変更し、それを変数dfに割り当てます(これは変更されたデータフレームではありません)が、ただのStructTypeオブジェクトです構文エラーがありますのでご確認ください)

データフレームをselectと適切な変換関数で変更する必要があります。必要な構造を持つタイプStructFieldの新しい列を作成し、それを新しい列として追加することを検討することがあります。withColumn関数

関連する問題