J'ai le dataframe ci-dessous et j'essaie d'obtenir la valeur 3097 en tant qu'int, par exemple le stocker dans une variable python pour le manipuler, le multiplier par un autre int etc.
J'ai réussi à obtenir la ligne, mais je pas même maintenant si c'est une bonne façon de le faire et que je ne peux toujours pas avoir la valeur comme int.
data.groupBy("card_bank", "failed").count().filter(data["failed"] == "true").collect()
3 Réponses :
Vous devez obtenir une ligne
à partir de la séquence (Wither for loop ou map function) puis row.getInt (2)
selon https://spark.apache.org/docs/ 1.4.0 / api / java / org / apache / spark / sql / Row.html .
Essayez de sélectionner la valeur de Spark Dataframe: -
df =data.groupBy("card_bank", "failed").count().filter(data["failed"] == "true").collect() value = df.select("count").as[int].collect()
ici, la valeur sera une liste.
Obtenez le premier enregistrement de l'objet Row en utilisant l'index 0 et obtenez la valeur en utilisant l'index "count"
from pyspark.sql.functions import col data.groupby("card_bank", "failed").count().filter(col("failed") == "true").collect()[0]["count"]
Exactement ce que je cherchais :)