Ich versuche, die Größe / Form eines DataFrame in PySpark herauszufinden. Ich sehe keine einzige Funktion, die dies kann.
In Python kann ich tun
data.shape()
Gibt es eine ähnliche Funktion in PySpark? Dies ist meine aktuelle Lösung, aber ich suche nach einem Element
row_number = data.count()
column_number = len(data.dtypes)
Die Berechnung der Spaltenanzahl ist nicht ideal ...
data.shape
für NumPy und Pandas?shape
ist keine Funktion.Antworten:
Sie können es bekommen
shape
mit:quelle
Verwenden Sie
df.count()
diese Option , um die Anzahl der Zeilen abzurufen.quelle
Fügen Sie dies Ihrem Code hinzu:
import pyspark def spark_shape(self): return (self.count(), len(self.columns)) pyspark.sql.dataframe.DataFrame.shape = spark_shape
Dann können Sie tun
>>> df.shape() (10000, 10)
Aber erinnern Sie sich nur daran, dass
.count()
dies bei sehr großen Tischen, die nicht beibehalten wurden, sehr langsam sein kann.quelle
ist einfacher für kleinere Datensätze.
Wenn der Datensatz jedoch sehr groß ist, besteht ein alternativer Ansatz darin, Pandas und Pfeile zu verwenden, um den Datenrahmen in Pandas df zu konvertieren und die Form aufzurufen
spark.conf.set("spark.sql.execution.arrow.enabled", "true") spark.conf.set("spark.sql.crossJoin.enabled", "true") print(df.toPandas().shape)
quelle
Ich denke, es gibt keine ähnliche Funktion wie
data.shape
in Spark. Aber ich werdelen(data.columns)
eher als verwendenlen(data.dtypes)
quelle