我试图在 PySpark 中找出 DataFrame 的大小/形状。我没有看到任何一个函数可以做到这一点。
在 Python 中,我可以这样做:
data.shape()
PySpark 中是否有类似的函数? 这是我目前的解决方案,但我正在寻找一个元素
row_number = data.count() column_number = len(data.dtypes)
列数的计算结果不理想。
我认为在 Spark 中没有类似于 data.shape的功能,但是我将使用 len(data.columns)而不是 len(data.dtypes)
data.shape
len(data.columns)
len(data.dtypes)
你可以通过以下方式获得它的 shape:
shape
print((df.count(), len(df.columns)))
使用 df.count()获取行数。
df.count()
将以下代码添加到代码中:
import pyspark def spark_shape(self): return (self.count(), len(self.columns)) pyspark.sql.dataframe.DataFrame.shape = spark_shape
然后你就可以
>>> df.shape() (10000, 10)
但是请注意,对于没有持久化的非常大的表,.count()可能会非常慢。
.count()
对于较小的数据集更容易。
然而,如果数据集是巨大的,一个替代的方法是使用熊猫和箭头转换数据框为熊猫 df 和调用形状
spark.conf.set("spark.sql.execution.arrow.enabled", "true") spark.conf.set("spark.sql.crossJoin.enabled", "true") print(df.toPandas().shape)