0
私は以下のコピーを貼り付けたタイタニックデータのpysparkデータフレームを持っています。各バケットのパーセンテージを列に追加するにはどうすればよいですか?助けのためのpysparkデータフレームのパーセンテージを計算する
ありがとう!
私は以下のコピーを貼り付けたタイタニックデータのpysparkデータフレームを持っています。各バケットのパーセンテージを列に追加するにはどうすればよいですか?助けのためのpysparkデータフレームのパーセンテージを計算する
ありがとう!
以下のようなものが動作するはずです。
df = sc.parallelize([(1,'female',233), (None,'female',314),(0,'female',81),(1, None, 342), (1, 'male', 109)]).toDF().withColumnRenamed("_1","survived").withColumnRenamed("_2","sex").withColumnRenamed("_3","count")
total = df.select("count").agg({"count": "sum"}).collect().pop()['sum(count)']
result = df.withColumn('percent', (df['count']/total) * 100)
result.show()
+--------+------+-----+------------------+
|survived| sex|count| percent|
+--------+------+-----+------------------+
| 1|female| 233| 21.59406858202039|
| null|female| 314|29.101019462465246|
| 0|female| 81| 7.506950880444857|
| 1| null| 342| 31.69601482854495|
| 1| male| 109|10.101946246524559|
+--------+------+-----+------------------+
あなたがする必要があります。 - 割合 を見つけるためのUDF
を作成 - - 合計 を計算し、結果の列を追加します。
この場合、単一のバケットは何になりますか? –
私は233/sum(count)、314/sum(count)..などが必要です – Balla13