私はPySparkでJupyter Notebookを使用しています。その中には、列の名前と型(整数、...)を持つスキーマを持つデータフレームがあります。今私はflatMapのようなメソッドを使用しますが、これは固定型をもたないタプルのリストを返します。それを達成する方法はありますか?その後PySparkフラットマップは型付き値のタプルを返します
df.printSchema()
root
|-- name: string (nullable = true)
|-- ...
|-- ...
|-- ratings: integer (nullable = true)
私は評価値を持ついくつかの計算(ここでは難読化)を行うにflatMapを使用します。
df.flatMap(lambda row: (row.id, 5 if (row.ratings > 5) else row.ratings))
y_rate.toDF().printSchema()
そして今、私はエラーを取得:
TypeError: Can not infer schema for type:
をどのような方法にはありますスキーマを維持してmap/flatMap/reduceを使用しますか?少なくとも特定の型の値を持つタプルを返すか?
非常に役に立ちます。あなたのサンプルコードをありがとう。私はflatMap vs Mapで部品を手に入れませんでした。 – Matthias
'flatMap'は関数' RDD [T] =>(T => Iterable [U])=> RDD [U] 'です。言い換えれば、関数は 'Itereble'(Pythonタプル)を返す関数を想定し、これらの結果を連結(平坦化)します。 – zero323
when/otherwiseカラムにその文の名前を付ける方法はありますか? 'df.rating(df.ratings、df.ratings 5,5).otherwise(df.ratings)' @ zero323 – Matthias