0
以下の行の結果を同じdfデータフレームのcolに格納します。私はフィルタを行い、同じデータフレーム内の別の列に結果を格納するために、pysparkデータフレームcol ...をカウントしますか?
df.filter(F.abs(df.Px)< 0.005).count()
私はそれをどのように行うことができますか?
以下の行の結果を同じdfデータフレームのcolに格納します。私はフィルタを行い、同じデータフレーム内の別の列に結果を格納するために、pysparkデータフレームcol ...をカウントしますか?
df.filter(F.abs(df.Px)< 0.005).count()
私はそれをどのように行うことができますか?
答えはunion
を使用して行うことができます。ただし、複数の列を持つことができ、新しいカウント値を持つ行が1つだけ追加されるため、特定の列の下に行を追加するのは良い方法ではありません。
私は以下のスニペットを提供します。
from pyspark.sql import Row
df = spark.createDataFrame(pd.DataFrame([0.01, 0.003, 0.004, 0.005, 0.02],
columns=['Px']))
n_px = df.filter(func.abs(df['Px']) < 0.005).count() # count
df_count = spark.sparkContext.parallelize([Row(**{'Px': n_px})]).toDF() # new dataframe for count
df_union = df.union(df_count)
+-----+
| Px|
+-----+
| 0.01|
|0.003|
|0.004|
|0.005|
| 0.02|
| 2.0|
+-----+
すでにこの[stackoverflowの質問](http://stackoverflow.com/questions/33681487/how-do-i-add-a-new-column-to-a-spark-dataframe-を見てきましたusing-pyspark)?私はそこにあなたの答えを見つけることができると思います。 – titiro89
お返事ありがとうございましたが、withColumn df = df.withColumn( "new"、df.filter(F.f)(0.00)).count()を使用した場合は 次のエラーが表示されます。返される値はintなので、colはColumnでなければなりません。あなたの入力をこの上に提供してください – LKA
dfとあなたのFが何であるかの簡単な例を教えてください。 – titiro89