1
votes

Obtenir de la valeur dans un dataframe dans PySpark

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.

entrez la description de l'image ici

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()

 entrez la description de l'image ici


0 commentaires

3 Réponses :


2
votes

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 .


0 commentaires

0
votes

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.


0 commentaires

2
votes

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"]


1 commentaires

Exactement ce que je cherchais :)